停止从发送引荐者到目的地的链接

时间:2011-02-17 18:58:12

标签: javascript href referrer

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

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

也许一些聪明的HTTP状态代码重定向功夫?

这样的事情将是完美的

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

5 个答案:

答案 0 :(得分:68)

我一直在寻找同样的东西,它似乎是this will be a feature of HTML5

您要查找的代码是rel="noreferrer"

已经implemented in Webkit (Chrome, etc.)as well as Firefox,但您的里程可能会有所不同。

答案 1 :(得分:43)

对于2015年及以后访问过的人来说,现在有一个合适的解决方案获得支持。

HTTP Referrer Policy规范允许您控制引荐来自发送链接子资源(图片,脚本,样式表等),目前,它是supported在Firefox,Chrome,Opera和Desktop Safari 11.1上。

适用于11.1之前的Safari的Edge,IE11,iOS Safari和桌面版支持neveralwaysorigindefault的旧规范版本作为选择。

According to the spec,可以通过指定多个策略值来支持这些。未被识别的将被忽略,最后一个被识别的将获胜。

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

此外,如果您要将其应用于需要{{1}的audioimglinkscriptvideo个标签}}属性,尽可能选择crossorigin,以便只共享绝对最小值(crossorigin="anonymous"标题)。

(使用CORS时无法删除Origin标头,因为远程站点需要知道发出请求的域名才允许或拒绝它。)

答案 2 :(得分:30)

HTML 5包含rel="noreferrer",即supported in all major browsers。因此,对于这些浏览器,您只需编写:

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

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

答案 3 :(得分:9)

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>

答案 4 :(得分:4)

我也试图解决这个问题。

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

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

此链接打开一个页面,该页面仅包含用于加载其他页面的JavaScript。 在我的测试中,没有推荐人被提供给最终目的地。我不知道它可以发送什么作为推荐人,如果它反正尝试,也许数据网址?这不会泄露你来自哪里。

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