【问题标题】:Does document.referrer equal the HTTP referer header?document.referrer 是否等于 HTTP referer 标头?
【发布时间】:2018-08-09 13:19:35
【问题描述】:

如果我点击从http://google.comhttp://example.com 的正常链接, 通常,我的浏览器发送到 example.com 的 http referrer 标头是 google.com。 该标头的值是否始终与 example.com 页面中 document.referrer 的值相同?

【问题讨论】:

    标签: javascript http browser refer


    【解决方案1】:

    客户端在请求头中发送的referer与JavaScript中可用的document.referrer相同。但是,您不能相信推荐人信息始终可用。

    由客户发送信息。您可以将其关闭,即在浏览器设置中。

    在 Firefox 中:https://www.technipages.com/firefox-enable-disable-referrer

    或者您可以使用扩展程序将其关闭。

    在 Chrome 中:https://chrome.google.com/webstore/detail/referer-control/hnkcfpcejkafcihlgbojoidoihckciin?hl=en

    欺骗/发送您想要的任何推荐人也很容易。以 cURL 为例:

    curl --referer http://whatever.com/bot.html http://www.example.com/
    

    编辑:您还可以在页面中禁用引荐来源网址发送,以便从该页面单击的链接或 ajax 调用不会发送引荐来源网址标题。只需将此标签添加到页面即可。

    <meta name="referrer" content="no-referrer" />
    

    更多讨论在这里:https://stackoverflow.com/a/32014225/5601169

    【讨论】:

    • 那么是document.referer更可靠还是http头更可靠? document.referer 也可以禁用吗?
    • 同理,document.referrer是客户端发送的referrer header的表示。如果可以禁用标头,则 JS 常量也应为空。
    • 这个我还是不太清楚:“1:点击链接时发送Referer header,并为下一页设置document.referrer。”,看起来header与另外,如果我将首选项设置为 1,ff 发送的内容与“下一页是什么(下一页是什么?,您在链接的那一页之后的第二个?)
    • adambarth.com/papers/2008/barth-jackson-mitchell-b.pdf 的第 4.2.1 节中,它说“通过 HTTP,Referer 标头比跨域 POST 的 document.referrer 值更频繁地被抑制”。这意味着它们并不总是相同的值。
    • 据我所知,document.referer 从标头中获取其值,我不知道这里是否可以从这里获取?
    猜你喜欢
    • 2010-12-08
    • 2010-11-24
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    相关资源
    最近更新 更多