70

我有一个页面,我不希望出站链接发送引荐来源网址,因此目标站点不知道它们来自哪里。

我猜这是不可能的,但我只是想确保没有任何隐藏的 javascript 魔法可以做到这一点,并且可以与某些(如果不是大多数)浏览器一起使用。

也许是一些巧妙的 HTTP 状态代码重定向功夫?

像这样的东西会很完美

<a href="example.com" send_referrer="false">link</a>
4

7 回答 7

83

我一直在寻找同样的东西,看起来这将是 HTML5 的一个特性

您要查找的标签是rel="noreferrer".

它已经在 Webkit(Chrome 等)以及 Firefox 中实现您的里程可能会有所不同。

截至 2020 年,所有主流浏览器都支持它,除了 Opera Mini 和旧版本的 IE11。

于 2011-09-27T17:11:32.473 回答
61

对于 2015 年及以后访问的任何人,现在都有一个获得支持的适当解决方案。

HTTP Referrer Policy规范允许您控制链接子资源(图像、脚本、样式表等)的referrer 发送,目前它在 Firefox、Chrome、Opera 和 Desktop Safari 11.1上受支持。

Edge、IE11、iOS Safari 和 11.1 之前的桌面版 Safari 支持旧版本的规范,其中neveralwaysorigindefault作为选项。

根据规范,可以通过指定多个策略值来支持这些。未识别的将被忽略,最后识别的将获胜。

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

此外,如果您想将其应用于需要属性的 、 、 、 或标签,请尽可能选择audioimg以便linkscript共享绝对最小值(标题)。videocrossorigincrossorigin="anonymous"Origin

(在使用 CORS 时,您无法摆脱Origin标头,因为远程站点需要知道哪个域正在发出请求才能允许或拒绝它。)

于 2015-09-27T02:19:51.383 回答
40

HTML 5 包括rel="noreferrer"所有主要浏览器都支持它。所以对于这些浏览器,你可以简单地写:

<a href="example.com" rel="noreferrer">link</a>

还有一个 shim 可用于其他浏览器:https ://github.com/knu/noreferrer

于 2013-06-03T16:37:58.150 回答
10

Bigmack 是在正确的轨道上,但 javascript 位置更改仍会在 Firefox 中发送引荐来源网址。使用元刷新似乎可以解决我的问题。

<a href='data:text/html;charset=utf-8, <html><meta http-equiv="refresh" content="0;URL=&#39;http://google.com/&#39;"></html>'>Link</a>
于 2013-01-11T08:12:12.697 回答
4

我也试图弄清楚这一点。

我想到的解决方案是使用数据 url 来隐藏我来自的实际页面。

<a href='data:text/html;charset=utf-8, <html><script>window.location = "http://google.ca";</script></html>'>Link</a>

此链接会打开一个仅包含 javascript 以加载不同页面的页面。在我的测试中,没有向最终目的地提供推荐人。我不知道如果无论如何尝试它可以作为推荐人发送什么,也许是数据网址?这不会泄露你来自哪里。

这适用于 Chrome。Chrome 是我目前唯一关心的问题,但对于那些不喜欢数据 url 页面中的 javascript 的浏览器。您可能可以尝试元刷新。

于 2012-08-09T01:26:07.103 回答
1

除了已经提供的信息。更多关于该主题的信息:https ://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer

如果您需要针对同源或跨源请求的不同规则,特别允许您发送或不发送推荐信息。

根据您的具体用例需要考虑的事项。即,如果您从 3rd 方网站提取图像/css/javascript,那么您可能不想识别您正在执行此操作的 URL,因此将使用 no-referrer 选项。而如果您从自己的网站链接到其他网站,您可能希望他们知道您正在向他们发送流量。始终考虑这对双方的影响。如果这两个方面存在冲突,那么还有其他选项,例如将 UTM 跟踪参数添加到 URL 的末尾,这对某些人来说可能会派上用场。此处的详细信息:https ://www.contradodigital.com/2014/06/03/importance-utm-tracking-parameters-social-media/

于 2017-02-23T11:47:07.953 回答
0

我不知道我是否在这里遗漏了什么并且很高兴得到纠正,但是 URL 缩短服务不能满足您的需求吗?

据推测,目标站点的日志只会显示缩短服务的域,而不是初始引用域,因此您将保持隐藏状态。

于 2021-12-05T13:25:00.690 回答