terrymanu commented on PR #38808:
URL: https://github.com/apache/shardingsphere/pull/38808#issuecomment-4623667788

   ### Decision
   
   - **Merge Verdict: Mergeable**
   - **Reviewed Scope:** PR #38808 latest head 
`fe8ddb167008b27ae4bb7f1a2674a7ac1181f3da`, merge-base 
`b5aa888dbfb9ca3d1c9c48db3d7b957ee58f2d85`; GitHub file list matched the local 
triple-dot diff: `deployment.en.md` and `deployment.cn.md`.
   - **Not Reviewed Scope:** CI/check-runs, rendered website output, live 
Nginx/Ingress/ALB runtime, and unrelated MCP execution code outside the HTTP 
attribution path.
   - **Need Expert Review:** No mandatory expert-review blocker remains; 
optional security/operator review can still help before publishing 
remote-exposure guidance.
   
   ### Basis
   
   No blocking issue found in the latest revision.
   
   The previous header-forgery risk is addressed. Both Nginx examples now use 
`proxy_pass_request_headers off` and explicitly allow-list the request headers 
forwarded to MCP, including `MCP-Session-Id` and `MCP-Protocol-Version`. The 
attribution example then injects trusted `X-ShardingSphere-MCP-*` values from 
the gateway side, and the text also tells operators to allow-list, strip, or 
reject client-supplied attribution headers before trusted injection.
   
   This matches the runtime semantics I checked: `SessionAttributionResolver` 
collects all headers matching `attributeHeaderPrefix`, so preventing arbitrary 
client-supplied prefixed headers is required; `MCPSessionManager` and the HTTP 
validator keep attribution stable for an existing session; omitting 
`sessionAttributionSource` remains documented for deployments that do not need 
attribution binding.
   
   The docs also keep the intended security boundary clear: built-in HTTP still 
does not provide authentication/authorization, and remote exposure remains 
delegated to a trusted gateway.
   
   ### Verification
   
   - Refreshed PR metadata and files from GitHub: 2 changed files, 184 
additions, no review comments or issue comments.
   - `git fetch apache master:refs/remotes/apache/master 
pull/38808/head:refs/remotes/apache/pr/38808` exited 0.
   - `git diff --name-status 
refs/remotes/apache/master...refs/remotes/apache/pr/38808` exited 0 and matched 
GitHub’s file list.
   - `git diff --check 
refs/remotes/apache/master...refs/remotes/apache/pr/38808` exited 0.
   - Inspected official Nginx proxy header directive docs for the allow-list 
approach:
     - 
https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass_request_headers
     - 
https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to