Security 在什么情况下HTTP_REFERER将为空

Security 在什么情况下HTTP_REFERER将为空,security,http-headers,cross-domain,http-referer,referrer-policy,Security,Http Headers,Cross Domain,Http Referer,Referrer Policy,我知道有可能得到一个空的HTTP\U引用。在什么情况下会发生这种情况?如果我得到一个空的,是否总是意味着用户更改了它?获取空值与获取空值相同吗?在什么情况下我也能得到它呢?当终端用户 在浏览器地址栏本身中输入网站URL 通过浏览器维护的书签访问站点 作为窗口/选项卡中的第一页访问了站点 单击外部应用程序中的链接 从https URL切换到http URL 从https URL切换到其他https URL 已安装安全软件(防病毒/防火墙/等),可从所有请求中删除推荐人 在一个代理后面,该代理从所

我知道有可能得到一个空的HTTP\U引用。在什么情况下会发生这种情况?如果我得到一个空的,是否总是意味着用户更改了它?获取空值与获取空值相同吗?在什么情况下我也能得到它呢?

当终端用户

  • 在浏览器地址栏本身中输入网站URL
  • 通过浏览器维护的书签访问站点

  • 作为窗口/选项卡中的第一页访问了站点
  • 单击外部应用程序中的链接

  • 从https URL切换到http URL

  • 从https URL切换到其他https URL
  • 已安装安全软件(防病毒/防火墙/等),可从所有请求中删除推荐人
  • 在一个代理后面,该代理从所有请求中删除推荐人
  • 以编程方式访问站点(如,),而不设置引用者标题(searchbots!)

HTTP\u REFERER-由浏览器发送,说明浏览器查看的最后一页

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

  • 某些浏览器将访问限制为不允许传递HTTP\U REFERER
  • 在地址栏中键入地址将不会传递HTTP\U引用程序
  • 打开新的浏览器窗口将不会传递HTTP\U REFERER,因为HTTP\U REFERER=NULL
  • 有一些浏览器插件,出于隐私原因阻止它。有些防火墙和AV不支持
  • 尝试此firefox扩展,您将能够设置所需的任何标题:

    @庆祝大师:

    Firefox:

    扩展名:

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

    谷歌chrome/chrome:

    扩展名:

    完全禁用:Chnage~/.config/google chrome/Default/Preferences或~/.config/chrome/Default/Preferences并设置此选项:

    {
       ...
       "enable_referrers": false,
       ...
    }
    
    或者只需添加--不向快捷方式或cli中添加引用者:

    歌剧院:

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

    欺骗web服务:

    独立筛选代理(伪造任何头):

    在使用wget时欺骗http\u 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)
    
    “--referer=url”

    使用curl时欺骗http\u referer

    -e、 --引荐

    使用telnet欺骗http\u 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)
    

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

    如果新的用于防止将referer头发送到请求源,则它也将为空。例如:

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

    尽管Chrome和Firefox已经实施了推荐人政策的草案版本,但您应该小心使用,因为例如Chrome希望
    没有推荐人
    ,而不是
    无推荐人
    (我也在某处看到过
    从不
    ).

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

    例如,带有“download”属性的锚元素在Safari中按预期工作并发送referer,但在Chrome中,referer在web服务器日志中为空或“-”

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

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

    当客户端未发送引用时。是另一个值得一看的Firefox扩展,如果你想玩不断变化的参考值。我真的很难记住它的名字。但我的记忆背叛了我。谢谢:)@nix
    一些浏览器限制访问权限,不允许传递HTTP\U引用者
    您能为这种浏览器和/或扩展名举出一个例子吗?@masterofcelbration添加了将HTTP\U引用者欺骗到我的答案中的方法。不要使用REFERER.us欺骗/隐藏您的引用者!它会泄露你的信息。目前唯一有效的服务是此免费服务。您可能希望添加“当用户从安全(HTTPS)页面转换到不安全页面时”。“作为窗口/选项卡中的第一页访问该网站。”即使是通过单击链接并在新窗口/选项卡中打开它??你确定吗?这将是一种非常错误的浏览器行为,请参见此处的“从https URL切换到其他https URL”的例外情况。你确定吗\默认情况下,从HTTPS URL切换到其他HTTPS URL会设置完整引用。但是,可以覆盖此默认策略。浏览器兼容性表: