我看到有人建议,只要有人使用target="_blank"
链接在其他窗口中打开它,就应该放rel="noopener noreferrer"
。我不知道这如何阻止我在Chrome中使用开发人员工具,并删除rel属性。然后点击链接...
这是保持漏洞的简便方法吗?
Answers:
您可能会误解该漏洞。您可以在此处了解更多信息:https : //www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/
从本质上讲,添加rel="noopener noreferrer"
链接可以保护您网站的用户免遭您链接的网站潜在地劫持浏览器(通过流氓JS)的侵害。
您在询问是否要通过开发人员工具删除该属性-这样只会使您(篡改该属性的人)容易受到该漏洞的威胁。
noopener noreferrer
由于noreferrer
包含的功能,因此是多余的noopener
。html.spec.whatwg.org/multipage/links.html#link-type-noreferrer
与链接target="_blank"
对他们是脆弱的,以具有参照网页在后台被换出,而用户的注意力被新打开的标签转移。这被称为反向跳动:
引荐页存储在中window.opener
,恶意站点可以通过以下方式对此进行修改:
if (window.opener) {
window.opener.location = "https://phish.example.com";
}
添加rel="noopener noreferrer"
可修复所有主要浏览器中的此漏洞。
请注意,理论上您可以通过操纵来删除rel
客户端...但是您为什么要这么做?您要做的只是故意使自己容易受到攻击。
其他访问同一网站(并且无需修改自己的客户端代码)的用户仍然可以安全使用,因为服务器仍可以使用rel="noopener noreferrer"
。您将其删除仅适用于您。
定位标记rel=”noopener”
或rel=”noreferrer”
属性可以提高网站的安全性,但是有些人希望忽略它们,因为他们认为这会影响网站搜索引擎的优化,但这只是一个神话。它可以保护您的网站访问者的机密性,并通过传播恶意代码来阻止外部网站。
noreferrer
部分。
关于Lighthouse最佳做法审核报告:
在任何外部链接上添加
rel="noopener"
或rel="noreferrer"
,以提高性能并防止安全漏洞。
通常,使用时target="_blank"
,请始终添加rel="noopener"
或rel="noreferrer"
:
例如:
<a href="https://www.kaiostech.com/store/" target="_blank" rel="noreferrer">
KaiStore
</a>
rel="noopener"
阻止新页面访问window.opener
属性,并确保它在单独的进程中运行。rel="noreferrer"
具有相同的效果,但是还可以防止将Referer
标头发送到新页面。有关更多信息,请参见官方文档。
如果开发者控制台显示有关的警告noopener noreferrer
,请确保同时添加noopener
和noreferrer
。链接应如下所示:
<a href="www.google.com" target="_blank" rel="noopener noreferrer" />