PHP $ _SERVER ['HTTP_REFERER']与Javascript document.referrer?

时间:2015-06-20 20:57:58

标签: javascript php url referrer referer

最终我需要知道哪个域托管我的一个javascript文件。我已经阅读并亲身体验$_SERVER['HTTP_REFERER']不可靠的第一手资料。我测试的前3个浏览器/计算机组合之一没有发送HTTP_REFERER,我知道它可能是欺骗性的。我使用两种javascript方法实现了不同的解决方案。

document.referrer

window.location.href

我使用前者获取窗口的网址,其中有人点击了我的某个链接。我使用前者来查看我的javascript文件包含在哪个域中。到目前为止我已经对它进行了一些测试,它很好地抓住了浏览器中的URL,没有打嗝。我的问题是,两个javascript方法可靠吗?他们每次都会从浏览器返回网址,还是有使用我尚未遇到的$_SERVER['HTTP_REFERER']的警告?

1 个答案:

答案 0 :(得分:1)

由于浏览器或用户因隐私问题而想要隐藏此信息,因此您应该始终认为有关引荐来源URI的任何信息都不可用(或者甚至可能不可靠)。

通常,从HTTPS链接到HTTP域时,您将没有引用者信息。有关详细信息,请查看此问题:

https://webmasters.stackexchange.com/questions/47405/how-can-i-pass-referrer-header-from-my-https-domain-to-http-domains

关于使用window.location.href,我认为它在实践中是可靠的,但仅仅因为有趣的是客户端将提供正确的信息,以便依赖于此的应用程序将按预期运行。

请记住,这仍然是客户端向您发送一些信息,因此浏览器始终会向您发送正确的信息。您无法控制它,只要相信它将根据标准中指定的内容工作。客户可能仍然决定隐瞒或以任何理由伪造它。

例如,在某些情况下,例如第三方包含脚本(也是隐私原因),浏览器可能会选择将其留空。