首页 > 解决方案 > 为什么人们使用 `rel="noopener noreferrer"` 而不仅仅是 `rel="noreferrer"`

问题描述

我经常看到以下模式:

<a href="<external>" target="_blank" rel="noopener noreferrer"></a>

但据我所知,noreferrer暗示noopener. 那么为什么noopener这里甚至需要呢?

https://html.spec.whatwg.org/multipage/links.html#link-type-noreferrer

<a href="..." rel="noreferrer" target="_blank">具有与 相同的行为<a href="..." rel="noreferrer noopener" target="_blank">

请注意,浏览器支持比https://caniuse.com/#feat=rel-noreferrer https://caniuse.com/#feat=rel-noopenernoreferrer之一更广泛noopener

标签: htmlsecurity

解决方案


将“noopener”和“noreferrer”组合在一起的标签rel表示由于noreferrer标签,不应将推荐人信息传递给所链接的网站,也可以防止新打开的页面控制传递流量的页面。

rel="noreferrer"属性与属性的作用相同rel="noopener",也会阻止referrer header被发送到新页面。

大多数现代浏览器都支持 noopener,但是当它不支持时,我们可以使用 noreferrer。实际上,使用它们来支持旧版浏览器是有意义的。也没有充分的理由删除rel="noopener",因为它似乎没有任何缺点,而且它被广泛考虑。


推荐阅读