隐藏PHP外部链接上的引用


Hiding referer on an external link with PHP

我正在编写一个页面,该页面链接到另一台服务器上的一些音乐文件,该服务器阻止了外部referer的访问。该网站还允许直接访问文件(通过在浏览器地址栏粘贴url)。

经过几个小时的搜索和尝试,我打算放弃,但我震惊的事情发生了!当你通过Gmail发送链接时,点击它,Gmail会将你重定向到另一个页面,然后文件开始下载。我的意思是Gmail在没有设置任何引用的情况下进行重定向。我如何在代码中做到这一点?

tl;dr:当用户点击链接时,我想将用户重定向到外部url,而不发送任何referrer数据!

不幸的是,这个实现不一致。

如此处所示

  • 在以下浏览器下更改window.location.href时设置HTTP引用头(HTTP- referer):
    • MSIE 9(但可能是9以上的任何版本)
    • Firefox(至少3.0,3.5,4.0,5.0,但很可能是所有版本)
    • Chrome(至少9个,但很可能是所有版本)
    • Safari(至少5个,但很可能是所有版本)
    • Opera(至少11个,但很可能是所有版本)
  • MSIE(至少6,7,8):当改变window.location.href
  • 时,引用者设置

你可以考虑通过<iframe>点击它,但你仍然会在不同的浏览器上看到不同的结果。

另一个建议是通过您的服务器代理请求,而不是在执行请求时设置referrer。如果您的带宽有限,这可能是一个问题。