【发布时间】:2010-07-09 10:44:31
【问题描述】:
我在某处读到他们说当您想要记录用户的 IP 时 HTTP_X_FORWARDED_FOR 不是受信任的变量,因为他们可以更改它。这是真的吗?怎么做?
非常感谢!
【问题讨论】:
我在某处读到他们说当您想要记录用户的 IP 时 HTTP_X_FORWARDED_FOR 不是受信任的变量,因为他们可以更改它。这是真的吗?怎么做?
非常感谢!
【问题讨论】:
正如答案here 中所指出的,HTTP_X_FORWARDED_FOR 变量的正确标头是 x-forwarded-for。所以你可以在 Fiddler 中设置自定义请求:
GET http://my.site/ HTTP/1.1
User-Agent: Fiddler
x-forwarded-for: my.x.forward.for.value
Host: my.host
【讨论】:
使用的代理可以将此标头设置为它想要的任何值,因此您不能相信它的值。大多数代理确实设置了正确的值。此标头主要由缓存代理使用,在这些情况下,您可以控制代理,因此可以验证它是否为您提供了正确的信息。在所有其他情况下,它的值应被视为不可信。在the Wikipedia article about X-Forwarded-For 上阅读更多信息。
【讨论】:
没错,下载Fiddler 看看如何修改所有HTTP Request。了解 HTTP 的工作原理也是一个好主意,然后就会一清二楚。
【讨论】: