假设$_SERVER['REMOTE_ADDR']始终返回IPv4地址是否安全?
谢谢!
我在PHP中面临$ _SERVER ['REMOTE_ADDR']的问题即使服务器使用IPv4,它也会提供类似IPv6的值.
任何人都可以帮我解决这个问题.
我有很多项目,依靠提供IP地址的功能$_SERVER['REMOTE_ADDR],$_SERVER['HTTP_X_FORWARDED_FOR']和$_SERVER['CLIENT_IP'].
IPV4地址很容易匹配,因为我们总是以相同的格式接收它们:4个整数没有前导0,用点分隔..
IPV6地址可以压缩.例:FF01:0:0:0:0:0:0:101 - > FF01 :: 101
我一直在研究这个问题,但没有发现任何相关内容,所以我要求你的经验.正在$_SERVER['REMOTE_ADDR]使用的标准呢?假设它总是以压缩或未压缩的形式接收是否安全?
或者我应该在尝试测试之前压缩所有的IPV6字符串?
注意:
理想情况下,我希望将IPV6地址作为字符串而不是二进制结构来处理,以提高数据库/源代码的可读性并允许更容易的IP范围匹配.