【问题标题】:What are the possible return values for $_SERVER['REMOTE_ADDR'];?$_SERVER['REMOTE_ADDR']; 的可能返回值是多少?
【发布时间】:2009-10-06 17:53:22
【问题描述】:

在编写登录模块时,我想记录 IP 作为额外的措施,以验证在另一边的人仍然是另一边的同一个人。

我使用$_SERVER['REMOTE_ADDR'] 作为获取远程机器IP 地址的一种(多种)方法。除了 IPv4 或 IPv6 地址之外,我应该期望它返回任何其他值吗?

【问题讨论】:

    标签: php ipv6 ipv4


    【解决方案1】:

    根据 PHP 在线文档,只应返回一个 IP 地址。

    http://us.php.net/manual/en/reserved.variables.server.php

    “'REMOTE_ADDR':

    用户查看当前页面的 IP 地址。”

    【讨论】:

    • 问题是我已经阅读并看到了 $_SERVER['REMOTE_ADDR'] 返回多个地址的实例。快速谷歌搜索出现此链接:bigresource.com/…
    【解决方案2】:

    该值可以是 IPv4 或 IPv6 地址。尽管您可能只会获得规范值,但请注意 IP 地址可以以多种方式写入。 192.0.2.1192.000.002.001 相同,2001:db8::12001:0db0:0000:0000:0000:0000:0000:0001 相同等。如果网络服务器接受 IPv6 套接字上的 IPv4 连接,IPv4 地址甚至可以用 IPv6 表示法编写,例如 ::ffff:192.0.2.1::ffff:c000:0201 .我在 Linux 系统上经常看到这种情况。

    只要保留足够的空间,记录 IP 地址应该不是问题。实际上,如今使用 IP 地址进行访问控制变得越来越棘手。因为世界上大部分地区已经用完了新的 IPv4 地址,所以您会看到 ISP 必须大规模使用 NAT 才能将新客户连接到 IPv4 互联网。这些大规模的 NAT 将使用公共 IPv4 地址池供数千名客户使用。一个 IP 地址可以被多个客户使用,而一个客户最终可能会使用池中的不同地址。

    在 IPv6 中,跟踪 IP 地址还有其他需要考虑的因素。最初的 IPv6 自动配置机制基于使用 MAC 地址作为 IPv6 地址的一部分。由于隐私问题,大多数操作系统现在使用(某种)随机生成的接口标识符(通常是地址的最后 64 位)进行传出连接,并且这些位可以/将随着时间而改变。一些操作系统 (Mac OS X) 甚至会统计 IPv4 或 IPv6 是否更快,我看到客户端有时会在 IPv4 和 IPv6 之间来回切换。

    然后您可以让用户从一个无线热点或办公网络漫游到另一个,从而切换 IP 地址。

    因此,我认为根据您要对数据执行的操作来记录 IP 地址可能是有意义的,但将它们用作(部分)访问控制形式可能会带来比其价值更多的麻烦。

    【讨论】:

      【解决方案3】:

      检查 IP 地址实际上并没有增加安全性,因为这些地址很容易被欺骗,任何精通拦截 POST 交易的人都可能会这样做。

      此外,您可能会惹恼合法用户。想想一个人可能在一个有几个免费开放 wifi 热点的位置的例子。当他们到达您的登录页面时,他们可能已连接到一个热点,但当他们登录时,他们的机器可能已经决定另一个路由器是更好的选择,因此他们的 IP 将会改变。信不信由你,这可能会阻止一些(尽管非常)容易受挫的用户。

      老实说,我只是不会打扰。如果可以的话,使用 SSL 通常是避免像您所描述的那样的安全问题的最佳方法。祝你的项目好运。

      【讨论】:

      • 嘿,凯尔,感谢您的 cmets。当涉及到用户信息和验证正确的凭据时,我只是想彻底。在设计登录方案时,我想考虑 wifi 热点和其他可能让用户因误报而烦恼的区域。
      • 优秀。 :-) 很高兴能提供帮助。
      • -1 因为,不,您不能轻易地通过 TCP 连接来欺骗 IP 地址。因此,检查地址仍然可以提供一些安全性。
      猜你喜欢
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 2017-01-31
      • 2011-06-25
      • 2016-05-03
      • 2017-04-28
      相关资源
      最近更新 更多