wiki.php 用Markdown写wiki是一种什么样的体验?

target=_blank 漏洞.md

最后更新于 2019-10-06 15:00:37

作者:洋葱猴
链接: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 对象