Security

當 HTTPS 通過代理時,伺服器會看到哪些客戶端 IP 地址?

  • September 19, 2017

讓我們假設一個 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。

引用自:https://serverfault.com/questions/874428