作者:洋葱猴
链接:http://zhuanlan.zhihu.com/p/22231471
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
国外网友近日曝出大部分网站都忽视了的安全漏洞,包括 Facebook,Twitter 等网站都被检测出带有 The target="_blank" 漏洞,据查该漏洞很早就被提交出来但一直被“忽视”,这可能是有史以来最被低估的漏洞。
你可以点击 这个 Demo 测试该安全问题:带有 target="_blank" 跳转的网页拥有了浏览器 ==window.opener== 对象赋予的对原网页的跳转权限,这可能会被恶意网站利用,例如一个恶意网站在某 UGC 网站 Po 了其恶意网址,该 UGC 网站用户在新窗口打开页面时,恶意网站利用该漏洞将原 UGC 网站跳转到伪造的钓鱼页面,用户返回到原窗口时可能会忽视浏览器 URL 已发生了变化,伪造页面即可进一步进行钓鱼或其他恶意行为...
代码如下:
<script language="javascript">
window.opener.location = 'https://example.com'
</script>
修复方法:
为 ==target="_blank"== 加上 ==rel="noopener noreferrer"== 属性。
预计该“安全缺陷”影响了 99% 的互联网网站和大部分浏览器,Instagram 已修复这个问题,有趣的是谷歌 拒绝接受 这个问题,谷歌认为“这属于浏览器缺陷,不能由单一的网站进行有意义的缓解”。
==rel 属性参数==
属性 | 说明 |
---|---|
nofollow | 禁止搜索引擎追踪链接(SEO优化相关) |
noreferrer | 禁止目标服务器获得 HTTP Referrer 信息 |
noopener | 禁止目标访问 window.opener 对象 |