PHP $_SERVER['HTTP_REFERER'] vs. Javascript document


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

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

document.referrer

window.location.href

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

您应该始终假设有关引荐来源网址 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 ,我会说它在实践中是可靠的,但这只是因为有趣的是,客户端将提供正确的信息,以便依赖于这些信息的应用程序将按预期运行。

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

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