在什么情况下HTTP_REFERER将为空

sam*_*old 149 security http-referer http cross-domain http-headers

我知道可以获得一个空的HTTP_REFERER.在什么情况下会发生这种情况?如果我得到一个空的,它是否总是意味着用户改变了它?获得一个空的一个与获得一个空的一样?在什么情况下我也能得到它?

Bal*_*usC 251

当最终用户时它/可能是空的

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

  • 您可能希望添加"当用户从安全(HTTPS)页面转换为不安全页面时". (31认同)
  • 默认情况下,从HTTPS URL切换到其他HTTPS URL会设置完整的引用.但是,可以覆盖此默认策略.https://www.w3.org/TR/referrer-policy/ (5认同)
  • "作为窗口/标签中的第一页访问了网站." 即使是通过单击一个链接并在新窗口/选项卡中打开它?你确定吗?这将是浏览器的一个非常错误的行为 (4认同)
  • "从https网址切换到其他https网址".你确定吗?:\ (4认同)

Tha*_*Guy 31

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

如果您因任何重要原因信任[HTTP_REFERER],则不应该,因为它可以轻易伪造:

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

试试这个firefox扩展,你就可以设置你想要的任何标题:

@Master of Celebration:

火狐:

扩展: refspoof,refontrol,修改标题,no-referer

完全禁用:该选项在about:config下的"network.http.sendRefererHeader"中可用,并且您希望将其设置为0以禁用引用传递.

谷歌chrome/Chromium:

扩展: noref,欺骗,外部noreferrer

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

{
   ...
   "enable_referrers": false,
   ...
}
Run Code Online (Sandbox Code Playgroud)

或者只需将--no-referrers添加到快捷方式或cli中:

google-chrome --no-referrers
Run Code Online (Sandbox Code Playgroud)

歌剧:

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

欺骗网络服务:

http://referer.us/

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

Privoxy的

使用wget时欺骗http_referer

'--referer = URL'

使用curl时欺骗http_referer

-e, - referer

欺骗http_referer和telnet

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)
Run Code Online (Sandbox Code Playgroud)


Nig*_*Owl 9

BalusC的名单很稳固.此字段经常显示为空的另一种方式是当用户位于代理服务器后面时.这类似于防火墙后面但略有不同,所以我想为了完整性而提及它.


Joe*_*ard 8

如果使用新的Referrer Policy标准草案来防止将referer标头发送到请求源,它也将为空.例:

<meta name="referrer" content="none">
Run Code Online (Sandbox Code Playgroud)

虽然Chrome和Firefox已经实现了推荐人政策的草稿版本,但您应该小心谨慎,因为例如Chrome预期no-referrer而不是none(我也曾在never某处看到).