Security
當 HTTPS 通過代理時,伺服器會看到哪些客戶端 IP 地址?
讓我們假設一個 HTTP 伺服器(比如託管一些 REST API 的端點)被配置為只允許來自單個客戶端(我們稱之為第一個客戶端)的連接,即來自單個客戶端 IP 地址的連接。如果該客戶端將執行 HTTP 代理,例如
squid
,如果另一個客戶端(我們稱之為第二個客戶端)將通過該代理連接,例如像這樣<2nd-client>$ curl -x <1st-client> --cacart <cert> https://server
然後 HTTP 伺服器會將第一個或第二個客戶端的 IP 地址視為 HTTP(S) 請求的來源嗎?換句話說,其他客戶端是否可以通過該代理繞過對客戶端 IP 地址施加的訪問限制?
我相信這取決於代理伺服器的配置方式。如果它不是您控制的代理,那麼答案是肯定的,客戶端可能會規避 ACL。
如果您確實控制了代理,則可以設置 XFF(X-Forwarded-For)標頭並將您的伺服器設置為從該標頭讀取 IP。