使用$_SERVER['REMOTE_ADDR']
正确自动处理错误是否可靠?
我正在考虑使用它来自动禁用任何PHP错误的显示,显示一般“哎呀,没有错误。”错误的用户并在内部记录,如果用户的IP地址不在白名单中找到。
白名单将包含本地主机IP和任何其他IP地址,例如我的家用电脑。
但如果人们能够通过将其设置为他们想要的任何值来伪造$_SERVER['REMOTE_ADDR']
,那么我认为这不是一个好主意。
答案 0 :(得分:1)
$_SERVER['REMOTE_ADDR']
是从三方确认的TCP握手中获取的地址。它非常强大。要伪造它,你必须伪造实际的底层TCP / IP连接,这通常是一个很高的订单。
我要关注的是改变IP。 127.0.0.1
可能非常安全,但您的家庭IP 最终可能更改,而其他人可能会分配它。这可能不是一个大问题,也可能不是。或者您可能看起来与大量其他用户具有相同的IP,ISP会随着时间的推移切换到运营商级NAT。
总而言之,使用IP作为识别系统是不稳定的。 IP是数据传输机制的实现细节,没有人曾经说过任何关于IP的信息适用于网络范围的用户识别。我至少将它与需要设置的秘密cookie或需要建立的常规认证配对。