让我们假设一个 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。