我看到人们建议,每当有人在链接中使用 target="_blank"
以在不同的窗口中打开它时,他们应该 rel="noopener noreferrer"
。例如,我想知道这如何阻止我在 Chrome 中使用开发人员工具,并删除 rel 属性。然后点击链接…
这是保持漏洞的简单方法吗?
原文由 Miro J. 发布,翻译遵循 CC BY-SA 4.0 许可协议
我看到人们建议,每当有人在链接中使用 target="_blank"
以在不同的窗口中打开它时,他们应该 rel="noopener noreferrer"
。例如,我想知道这如何阻止我在 Chrome 中使用开发人员工具,并删除 rel 属性。然后点击链接…
这是保持漏洞的简单方法吗?
原文由 Miro J. 发布,翻译遵循 CC BY-SA 4.0 许可协议
带有 target="_blank"
的链接 很容易 在后台换出引荐页面,同时用户的注意力被新打开的选项卡转移。这被称为 反向 tabnapping :
引用页面存储在 window.opener
中,恶意站点可以通过以下方式修改它:
if (window.opener) {
window.opener.location = "https://phish.example.com";
}
添加 rel="noopener noreferrer"
修复了所有主要浏览器中的此漏洞。
请注意,理论上您可以通过操作删除 rel
客户端……但您为什么要这样做?你所做的一切都是故意让自己容易受到攻击。
访问同一网站(并且不修改自己的客户端代码)的其他用户仍然是安全的,因为服务器仍会提供 rel="noopener noreferrer"
。您删除它仅适用于您。
原文由 Obsidian Age 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.5k 阅读✓ 已解决
2 回答882 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答896 阅读✓ 已解决
2 回答782 阅读
1 回答771 阅读✓ 已解决
2 回答1.1k 阅读
您可能误解了该漏洞。你可以在这里阅读更多相关信息: https ://www.jitbit.com/alexblog/256-targetblank—the-most-underestimated-vulnerability-ever/
本质上,将
rel="noopener noreferrer"
添加到链接可以保护您网站的用户免受您 链接 的网站可能劫持浏览器(通过流氓 JS)。您正在询问通过开发人员工具删除该属性 - 这只会使 _您_(篡改该属性的人)潜在地暴露于漏洞。
2021 年更新: 所有当前版本的主要浏览器现在自动对任何
target="_blank"
链接使用rel="noopener"
的行为,从而消除此问题。在 chromestatus.com 上查看更多信息。