4

我有一个 IIS 托管的 ASP.NET WebAPI 应用程序,我使用ServerVariables["REMOTE_ADDR"]它来获取客户端地址并识别用户:客户端登录,我将生成一个包含客户端 IP 的 cookie。在随后的调用中,我将从 cookie 中获取 IP,并验证它是否正确。

我可以相信这个地址,还是有一种方法可以ServerVariables["REMOTE_ADDR"]返回,例如161.121.222.223,客户真的在其他地方?

4

2 回答 2

3

是的,它是安全的。它是 TCP 连接的源 IP,不能通过更改 HTTP 标头来代替。

您可能需要担心的一种情况是,如果您在反向代理后面,在这种情况下,REMOTE_ADDR 将始终是代理服务器的 IP,并且用户 IP 将在 HTTP 标头中提供(例如 X-Forwarded-For )。但是对于正常的用例来说,阅读 REMOTE_ADDR 就可以了。

摘自:信任 $_SERVER['REMOTE_ADDR'] 是否安全?

于 2013-03-21T08:05:49.180 回答
0

是的,它是可靠的。它不能被客户端修改,除非简单地从另一个 IP 连接。(代理)

于 2013-03-21T08:02:44.090 回答