| 关键词: 网站 恶意 window 标签 opener 变量 因此 noopener 属性 |
新标签页中打开一个网址如何出现安全漏洞 让我们在网站上的新标签页中打开一个网址,HTML如下 这里我们有一个指向恶意网站的 href 属性,并以 _blank 属性为 target,使其在新标签页中打开。 用户从你的页面重定向到域,此时,浏览器会将你当前网站的所有 window 变量内容附加到恶意网站的 window.opener 变量。现在恶意网站可以访问你网站的 window,这显然在重定向此方法时打开了一个安全漏洞。 恶意网站一旦通过 window.opener 访问了你的网站的 window 变量,它可以将你之前的网站重定向到一个新的钓鱼网站,这个网站可能与你打开的实际网站相似,甚至可能会要求你再次登录。 在恶意网站中,只需编写以下代码即可完成上述修改 因此,无辜用户将陷入此陷阱,并提供可能暴露给攻击者的登录详细信息。 我们如何避免这种情况? 一种简单的方法是将带有 noopener 的 rel 属性添加到 标记。 它有什么作用? rel = "noopener" 表示浏览器不要将当前网站的 window 变量附加到新打开的恶意网站。 这使得恶意网站的 window.opener 的值为 null。 因此,在将用户导航到你未维护的新域时,请当心。 并非总是我们用标签打开一个新标签,在某些情况下,你必须通过执行javascript的 window.open() 来打开它,如下所示: 这里没有提及 noopener,因此这导致当前网站的 window 传递到恶意网站。 通过js打开新标签页时,该如何处理?我们已经通过 window.open() 打开了一个虚拟标签,该标签打开了 about:blank,因此这意味着它尚未重定向到恶意网站。 然后,我们将新标签的 opener 值修改为 null。 这次,opener 再次为空,因此它无法访问第一个网站的 window 变量。 问题解决了。 但是在旧版本的Safari中将无法使用此方法,因此我们再次遇到问题。 如何解决Safari的问题?在这里,我们模拟点击锚标记。
如果对你有所启发和帮助,可以点个关注、收藏、转发,也可以留言讨论,这是对作者的最大鼓励。 |
| 本文出处: https://www.toutiao.com/a6828203025727750668/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|