我有一个页面,我不希望出站链接发送引荐来源网址,因此目标站点不知道它们来自哪里。
我猜这是不可能的,但我只是想确保没有任何隐藏的 javascript 魔法可以做到这一点,并且可以与某些(如果不是大多数)浏览器一起使用。
也许是一些巧妙的 HTTP 状态代码重定向功夫?
像这样的东西会很完美
<a href="example.com" send_referrer="false">link</a>
我有一个页面,我不希望出站链接发送引荐来源网址,因此目标站点不知道它们来自哪里。
我猜这是不可能的,但我只是想确保没有任何隐藏的 javascript 魔法可以做到这一点,并且可以与某些(如果不是大多数)浏览器一起使用。
也许是一些巧妙的 HTTP 状态代码重定向功夫?
像这样的东西会很完美
<a href="example.com" send_referrer="false">link</a>
我一直在寻找同样的东西,看起来这将是 HTML5 的一个特性。
您要查找的标签是rel="noreferrer"
.
它已经在 Webkit(Chrome 等)以及 Firefox 中实现,但您的里程可能会有所不同。
截至 2020 年,所有主流浏览器都支持它,除了 Opera Mini 和旧版本的 IE11。
对于 2015 年及以后访问的任何人,现在都有一个获得支持的适当解决方案。
HTTP Referrer Policy规范允许您控制链接和子资源(图像、脚本、样式表等)的referrer 发送,目前它在 Firefox、Chrome、Opera 和 Desktop Safari 11.1上受支持。
Edge、IE11、iOS Safari 和 11.1 之前的桌面版 Safari 支持旧版本的规范,其中never
、always
、origin
和default
作为选项。
根据规范,可以通过指定多个策略值来支持这些。未识别的将被忽略,最后识别的将获胜。
<meta name="referrer" content="never">
<meta name="referrer" content="no-referrer">
此外,如果您想将其应用于需要属性的 、 、 、 或标签,请尽可能选择audio
,img
以便link
仅script
共享绝对最小值(标题)。video
crossorigin
crossorigin="anonymous"
Origin
(在使用 CORS 时,您无法摆脱Origin
标头,因为远程站点需要知道哪个域正在发出请求才能允许或拒绝它。)
HTML 5 包括rel="noreferrer"
,所有主要浏览器都支持它。所以对于这些浏览器,你可以简单地写:
<a href="example.com" rel="noreferrer">link</a>
还有一个 shim 可用于其他浏览器:https ://github.com/knu/noreferrer
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>
我也试图弄清楚这一点。
我想到的解决方案是使用数据 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 的浏览器。您可能可以尝试元刷新。
除了已经提供的信息。更多关于该主题的信息: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/
我不知道我是否在这里遗漏了什么并且很高兴得到纠正,但是 URL 缩短服务不能满足您的需求吗?
据推测,目标站点的日志只会显示缩短服务的域,而不是初始引用域,因此您将保持隐藏状态。