我有一个页面,我不希望出站链接发送引荐来源,因此目标网站不知道它们来自哪里。
我猜这是不可能的,但我只是想确保没有任何隐藏的javascript魔法可以做到这一点,并且可以与一些(如果不是大多数)浏览器一起使用。
也许一些聪明的HTTP状态代码重定向功夫?
这样的事情将是完美的
<a href="example.com" send_referrer="false">link</a>
答案 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和桌面版支持never
,always
,origin
和default
的旧规范版本作为选择。
According to the spec,可以通过指定多个策略值来支持这些。未被识别的将被忽略,最后一个被识别的将获胜。
<meta name="referrer" content="never">
<meta name="referrer" content="no-referrer">
此外,如果您要将其应用于需要{{1}的audio
,img
,link
,script
或video
个标签}}属性,尽可能选择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='http://google.com/'"></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的浏览器。您可以尝试元刷新。