target blank与noopener
<a href="https://gravatar.com/emails" target="_blank">change</a>
一个看似普通的 a 标签后面可能暗藏隐患.
使用 target 指定 _blank 打开第三方网页, 则该新开网页默认有 原网页的 location 控制权(无论是否跨域).
# 新开页面
if (window.opener) {
opener.location = '钓鱼网站';
} else {
alert('安全');
}
解决方案:
target="_blank" rel="noopener noreferrer"
.
参考
https://mathiasbynens.github.io/rel-noopener
http://keenwon.com/1548.html