描述
属性值 | 描述 | 支持元素 | 不支持元素 |
---|---|---|---|
noopener | 指示浏览器打开链接而不授予新的浏览上下文对打开它的文档的访问权限-通过在打开的窗口中不设置Window.opener属性(返回null)。 当打开不受信任的链接时,这特别有用,以确保它们无法通过Window.opener属性来篡改原始文档(有关更多详细信息,请参阅 About rel=noopener),同时仍提供 Referer HTTP标头(除非也使用noreferrer)。 请注意,使用noopener时,在决定是否打开新窗口/选项卡方面,除_top,_self和_parent 以外的非空目标名称都被视为_blank 。 | <a>, <area> | <link> |
noreferrer | 阻止浏览器导航到另一个页面时,通过Referer:HTTP header将该页面地址或任何其他值作为Referrer发送。(在Firefox 37之前的Firefox中,此功能仅在页面中找到的链接中有效。在UI中单击的链接(例如通过上下文菜单“在新选项卡中打开”)被忽略了)。 | <a>, <area> | <link> |
用途
使用target时,考虑添加 rel=“noopener norefferrer” 以防止针对 window.opener API 的恶意行为。
原因
rel =“noopener”一般都是搭配 target="_blank"同时使用,因为 target="_blank" 也是一个安全漏洞:新的页面可以通过 window.opener 访问您的窗口对象,并且它可以使用 window.opener.location = newURL 将您的页面导航至不同的网址。新页面将与您的页面在同一个进程上运行,如果新页面正在执行开销极大的 JavaScript,您的页面性能可能会受影响。
noreferrer 标记在单击链接时隐藏引用者信息,防止网络钓鱼攻击。
关于SEO
noopener 标签和 noreferrer 标签对 SEO 没有任何影响。