根据AWS关于 ALB 和X-Forwarded-For
标头的文档,客户端 IP 位于最左侧(因此代理将紧随其后):
最左边的地址是第一次发出请求的客户端 IP 地址。
但是,如果用户提供了自己的X-Fowarded-For
标头,则客户端 IP 将附加到提供的标头中:
负载均衡器将客户端 IP 地址附加到现有标头并将标头传递给您的服务器
如果我正确理解文档,X-Forwarded-For
标题可能类似于:
spoofed,clientIp,proxy,proxy
这意味着实际的客户端 IP 介于用户提供的值和代理之间。我们无法提取最左边的值,因为它可能被欺骗(甚至包含逗号分隔的值),并且我们无法提取最右边的值,因为它可能是代理。
是否有可靠的方法来识别实际的客户端 IP?