在什么情况下 HTTP _ REFERER 是空的

我知道有可能得到一个空的 HTTP _ REFERER。在什么情况下会发生这种事?如果我得到一个空的,是否总是意味着用户更改了它?得到一个空的和得到一个空的是一样的吗?在什么情况下我也能得到这个?

139816 次浏览

当终端用户

  • 在浏览器地址栏中输入站点 URL。
  • 用浏览器维护的书签访问网站。
  • 作为窗口/选项卡的第一页访问该网站。
  • 单击外部应用程序中的链接。
  • 从 https URL 切换到 http URL。
  • 从 https URL 切换到另一个 https URL。
  • 安装了安全软件(防病毒/防火墙/等) ,从所有请求中删除引用者。
  • 在代理服务器后面,代理服务器将引用者从所有请求中删除。
  • 通过编程访问站点(比如 卷发)而不设置引用头(searchbot!)。

HTTP _ REFERER-由浏览器发送,声明浏览器浏览的最后一页!

如果你因为任何重要的原因而信任[ HTTP _ REFERER ] ,你不应该这样做,因为它很容易被伪造:

  1. 有些浏览器将访问限制为不允许传递 HTTP _ REFERER
  2. 在地址栏中键入地址将不会传递 HTTP _ REFERER
  3. 打开一个新的浏览器窗口将不会传递 HTTP _ REFERER,因为 HTTP _ REFERER = NULL
  4. 有一些浏览器插件为了保护隐私而屏蔽了它。一些防火墙和 AVs 会这样做。

试试这个 Firefox 扩展,你可以设置任何你想要的头:

@ 庆典大师:

Firefox:

扩展: RefspoofRefontrol修改标题,< a href = “ https://addons.mozilla.org/en-US/firefox/addon/no-reference/”rel = “ noReferrer”> no-reference

完全禁用: 该选项在“ network.http.sendRefererHeader”的 about: config 中可用,您需要将该选项设置为0以禁用引用传递。

谷歌 Chrome/Chromium:

扩展: Noref恶作剧,< a href = “ https://chrome.google.com/webstore/Details/lobgjaciknombeehlellklmbakbphll”rel = “ noReferrer”> 外部 noReferrer

完全禁用: Chanche ~/. config/google-chrome/Default/Preferences or ~/. config/chromium/Default/Preferences 并设置如下:

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

或者简单地添加—— no-Referers 到快捷方式或者在 cli 中:

google-chrome --no-referrers

歌剧:

完全禁用: 设置 > 首选项 > 高级 > 网络,并取消选中“发送引用者信息”

欺诈网站服务:

Http://referer.us/

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

Privoxy

在使用 wget 时欺骗 http _ reference

‘—— reference = url’

在使用 curl 时欺骗 http _ reference

- E-推荐人

利用 telnet 欺骗 http _ reference

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)

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

如果使用新的 转介人政策标准草案来防止引用头被发送到请求源,那么它也是空的。例如:

<meta name="referrer" content="none">

虽然 Chrome 和 Firefox 已经实现了 Referrer Policy 的草案版本,但是你应该小心使用它,因为例如 Chrome 希望使用 no-referrer而不是 none(我在某处也看到过 never)。

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

例如,一个带有“ download”属性的锚元素在 Safari 中正常工作并发送引用,但是在 Chrome 中,引用在 Web 服务器日志中是空的或者是“-”。

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

在 Chrome 中被破坏-没有发送引用。