清空用户 HTTP_REFERER 最可靠的方法是什么?

What is the most reliable way to empty users' HTTP_REFERER?

我有一个页面可以通过 PHP 的 header() 函数将用户重定向到另一个网站。但是,我想在将用户发送到该网站之前清空用户的 HTTP_REFERER 变量。

最可靠的方法是什么?我猜 PHP 无能为力,因为 HTTP_REFERER 是一个客户端变量。也许 JavaScript 那么?是否有一个轻量级库?

您可以在 JavaScript 中检测引荐来源网址,但不能设置它。

您可以将它们发送到中间页面,比如 PHP,但是可以设置引荐来源网址,然后转发它们。

Here is the process on SO & a walkthrough on using that SO link.

唯一简单的方法是在源和目标之间设置某种过渡页面。

例如:example.com/var/product/1234 => example.com/redirector/google.com => google.com

这样目标站点将只接收转换页面的 link。

如果您想完全隐藏用户来自您网站的事实,您需要将转换页面托管在另一个域上。 anonym.to 网站提供此类服务。但是,由于这是一项免费的第 3 方服务,您可能希望托管自己的服务以保证可用性并防止任何可能的请求记录。实施大约需要 3 行 PHP 代码。

仅 js 方法:

location.href="data:text/html,"+
  encodeURIComponent("<script>location.href='http://yahoo.com/'<\/script>");

即使代码确实留下了 ref,它也会指向 dataURL,而不是您的网站。