$ _SERVER [“HTTP_REFERER”] HTTP图像请求的可靠性因素

时间:2014-10-23 16:40:28

标签: php cross-browser referrer spoofing server

据说不相信$ _SERVER [“HTTP_REFERER”],因为它可以......

  1. 欺骗
  2. 未由浏览器设置
  3. http://php.net/manual/en/reserved.variables.server.php

    $_SERVER["HTTP_REFERER"]
    

    接受它可以被欺骗的事实,我现在的问题是这样的..哪些浏览器不会设置变量,而是在HTTP请求图像时执行始终设置变量的变量。

    在包括IE6及更高版本在内的所有主流浏览器中进行一些测试后,我还没有找到一个没有设置$ _SERVER [“HTTP_REFERER”],或者没有正确设置的浏览器。

    我们可以说所有浏览器实际上都设置了变量,或者大多数浏览器都设置了变量吗?是否有失败的浏览器列表?

2 个答案:

答案 0 :(得分:1)

我不确定您是否可以提供在这方面一致的浏览器/ UA列表。

考虑:

  1. Bots and Spiders。
  2. Javascript可用于更改引用。
  3. 直接访问。
  4. 与#1相关,许多其他自动HTTP客户端。
  5. 大多数浏览器“隐私”扩展程序,引用切换扩展程序,隐身/隐私浏览模式等。

答案 1 :(得分:0)

来自Web应用程序黑客手册:

  

根据w3.org标准,Referer标头是严格可选的。   因此虽然大多数浏览器实现,但使用它来控制   应用程序功能应该被视为“黑客”。

因为黑客可以使用适当的toos拦截HTTP请求,并且可以在发送HTTP请求之前修改它,所以不应该使用它来控制任何应用程序功能。