冰蝶 2020-07-18
当我们在网站中引入外部链接的时候往往使用的是
<a href="" target="_blank"></a>
大家都喜欢target="_blank", 因为新页面打开不影响原来的页面。但是这个存在安全问题, 由target="_blank"打开的页面, 可以通过window.opener访问原来的窗口。
例如:
window.opener.location = "http://..."
便可以简单的将网页导航到其他网站, 这就存在很多的安全隐患了, 比如钓鱼。
这种问题解决起来也很简单, 在链接中加入rel="noreferrer noopener"属性就可以了。
<a href="" target="_blank" rel="noreferrer noopener"></a>
新片场https://www.wode007.com/sites/73286.html 傲视网https://www.wode007.com/sites/73285.html
我查看了几个可以发布文章的平台, 例如掘金、思否、知乎 还有CSDN, 果不其然CSDN是唯一有这个问题的。
CSDN总是慢一拍, 一个技术网站却总是显得那么不专业, 就像当初的数据库明文存储密码
这是最先想到的, 如果有人仿做一个登录页面, 然后发布一片文章, 插入一条带有漏洞的链接, 当读者查看完, 返回时, 看到一个登录页面
读者可能会奇怪, 但是我相信还是会有很多人会中这个陷阱
输入密码后, 登录的钓鱼网站只需返回原来的页面即可, 因为Cookie的存在就好像真的登录了一样, 此时密码已经不知不觉泄露了
这里不得不再吐槽一下CSDN, 关注用户的api不仅简单, 而且是get post请求均可的, 这就给了我们很大的操作空间了
我们只需利用window.opener.location导航到关注api, 再返回回去即可, 读者在不知不觉中就进行了关注
一小段代码的例子:
window.opener.location = "https://my.csdn.net/index.php/follow/do_follow?..." setTimeout(()=>{ window.opener.location = "https://blog.csdn.net/Dogfights/article/details/..." },1000)