在什么情况下HTTP_REFERER为空


Answers:


276

当最终用户使用时,它将/可能为空

  • 在浏览器地址栏中输入了网站网址。
  • 通过浏览器维护的书签访问了该网站。
  • 作为窗口/标签中的第一页访问了该网站。
  • 单击了外部应用程序中的链接。
  • 从https URL切换到http URL。
  • 从https URL切换到其他https URL。
  • 安装了安全软件(防病毒/防火墙/等),可以从所有请求中删除引荐来源。
  • 在代理后面,该代理将从所有请求中删除引荐来源。
  • 无需设置引荐来源标头(searchbots!),而是以编程方式(例如curl)访问了该网站。

32
您可能想要添加“当用户从安全(HTTPS)页面转换到不安全页面时”。
John Pick '04

4
“在窗口/选项卡中将该站点作为首页访问。” 即使是通过单击打开链接并在新窗口/标签中打开它,也是如此?你确定吗?那将是浏览器的一个非常错误的行为
Matteo 2013年


4
“从https URL切换到其他https URL”。你确定吗?:\
奥斯卡·梅德罗斯

5
默认情况下,从HTTPS URL切换到其他HTTPS URL会设置完整引用。但是,可以覆盖此默认策略。w3.org/TR/referrer-policy
Dhaval Kapil '02

34

HTTP_REFERER-由浏览器发送,说明浏览器查看的最后一页!

如果出于任何重要原因信任[HTTP_REFERER],则不应该这样做,因为它很容易被伪造:

  1. 某些浏览器将访问限制为不允许传递HTTP_REFERER
  2. 在地址栏中输入地址不会通过HTTP_REFERER
  3. 打开新的浏览器窗口将不会通过HTTP_REFERER,因为HTTP_REFERER = NULL
  4. 有一些浏览器插件会出于隐私原因将其阻止。某些防火墙和AV会这样做。

尝试使用此firefox扩展,您将可以设置所需的任何标头:

@庆祝大师:

Firefox:

扩展: refspoofrefontrol修改标题无引荐

完全禁用:该选项可用约:在“network.http.sendRefererHeader”的配置,并要将此设定为0则代表停用引荐传球。

Google chrome / Chromium:

扩展: norefSpoofy外部noreferrer

完全禁用: Chnage〜/ .config / google-chrome / Default / Preferences或〜/ .config / chromium / Default / Preferences并进行以下设置:

{
   ...
   "enable_referrers": false,
   ...
}

或直接在快捷方式或cli中添加--no-referrers:

google-chrome --no-referrers

歌剧:

完全禁用:设置>首选项>高级>网络,然后取消选中“发送引荐来源信息”

欺骗Web服务:

http://referer.us/

独立过滤代理(欺骗任何标头):

聚氧乙烯

使用wget时欺骗http_referer

'--referer = url'

使用curl时欺骗http_referer

-e,--referer

通过telnet欺骗http_referer

telnet www.yoursite.com 80 (press return)
GET /index.html HTTP/1.0 (press return)
Referer: http://www.hah-hah.com (press return)
(press return again)

篡改数据是另一个Firefox扩展,如果您想更改引荐来源网址值,则值得一看。
克里斯·赫普纳

我非常努力地想起它的名字。但我的记忆出卖了我。谢谢:)
ThatGuy

@nix Some browsers limit access to not allow HTTP_REFERER to be passed能否请您为此类浏览器和/或扩展名命名?
庆祝大师

@MasterofCelebration添加了将http_referer欺骗的方法。
ThatGuy 2012年

不要使用referer.us欺骗/隐藏您的推荐人!它不起作用并泄漏您的信息。目前唯一可用的服务是此免费的隐藏参考链接服务。
布赖恩·史密斯

9

BalusC的名单很可靠。当用户位于代理服务器之后时,此字段经常显示为空的另一种方式。这类似于在防火墙后面,但略有不同,因此为了完整起见,我想提及它。



0

我发现浏览器引用程序的实现确实不一致。

例如,具有“ download”属性的锚元素在Safari中可以正常工作并发送引用,但是在Chrome浏览器中,Web服务器日志中的引用将为空或为“-”。

<a href="http://foo.com/foo" download="bar">click to download</a>

在Chrome中损坏-未发送参照。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.