当一个跳转连接 这么写的时候 <a href="./target.html" target="_blank">target _blank</a>
在新打开的界面,将会暴露一个 opener
对象,简单的理解。这个对象就是父窗口的 windows
对象,能够直接使用父窗口的方法, 好比经过window.opener.location = newURL
来重写父页面的url,即便与父窗口的页面不一样域,跨域的状况下也生效,能够在用户不知情的状况下,悄悄的改了原有的界面,等用户在回头使用时,却已被钓鱼,严重的,能够诱导用户输入敏感信息。html
经过在a标签上添加这个noopener属性,能够将新打开窗口的opner置为空windows
<a href="./target.html" target="_blank" rel="noopener">target _blank noopener</a>
跨域
var otherWindow= window.open();
otherWindow.opener = null;
other = 'http://newurl';
复制代码
对于旧版本浏览器和火狐浏览器,能够加上 rel="noreferrer" 更进一步禁用 HTTP 的 Referer 头浏览器
总而言之,若是使用了 target="_blank" 打开外部页面,就必须加上 rel="noopener noreferrer" 属性以保证安全安全
参考 在新窗口中打开页面?当心有坑!bash