【问题标题】:Can i trust the value that is returned from ServerVariables["REMOTE_ADDR"]我可以信任从 ServerVariables["REMOTE_ADDR"] 返回的值吗
【发布时间】:2013-03-10 15:26:55
【问题描述】:

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

我可以相信这个地址吗,或者有没有办法让ServerVariables["REMOTE_ADDR"] 返回,例如161.121.222.223 和客户真的在别的地方吗?

【问题讨论】:

    标签: asp.net http iis asp.net-web-api


    【解决方案1】:

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

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

    取自:Is it safe to trust $_SERVER['REMOTE_ADDR']?

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-08-15
        • 2012-05-11
        • 2012-08-26
        • 1970-01-01
        • 1970-01-01
        • 2011-08-16
        • 2019-09-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多