php – $_SERVER [‘REMOTE_ADDR’]是不可靠的?
我通常假设在
PHP脚本中,我可以测试$_SERVER [‘REMOTE_ADDR’]来建立请求发起的IP地址.但是,我开始怀疑事情是不是更复杂一些.这是场景
>我运行了一些服务器,称为A,B和C – 用户必须在其上注册 请求退出 file_get_contents('https://url?data=value') 在服务器A,B& C我非常天真地测试$_SERVER [‘REMOTE_ADDR’]来确定请求实际上来自服务器S.令我感到惊讶的是,结果证明是可变的 > REMOTE_ADDR中的值是与注册服务器S交互的人类用户的IP地址 我真的不需要执行这个额外的验证测试,所以我可以完全删除它.不过,这个结果使我感到非常惊讶,所以我很好奇,看看有没有人可以看出发生了什么. 我应该提到,我在服务器A,B& A上的Lighttpd上运行PHP 5.5 C和PHP 5.3在Apache 2上在服务器S.
REMOTE_ADDR是Apache(或任何其他Web容器)填充的变量,它包含通信另一端的终端的IP地址.
可靠吗是. 是否安全?取决于您是否使用它,认为它会向您显示发起呼叫的用户的IP地址,您错了,任何代理人将阻止该信息. 在您的情况下,发出HTTP呼叫的服务器应提供其IP地址,因此场景2应始终发生.我不知道什么时候出了什么问题,但是它的奇怪. 为了回应Dany Caissy,不要依靠HTTP_X_FORWARDED_FOR,它可以很容易地修改为HTTP头,而不是TCP / IP属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |