Using target=“_blank“ without rel=“noreferrer“ is a security risk:
报错提示:使用 target=”_blank”的时候没有带上rel=”noreferrer”是一个安全风险。
当您的页面链接至使用 target="_blank"
的另一个页面时,新页面将与您的页面在同一个进程上运行。 如果新页面正在执行开销极大的 JavaScript
,您的页面性能可能会受影响。
当你使用target="_blank"
打开一个新的标签页时,新页面的window
对象上有一个属性 opener
,它指向的是前一个页面的window
对象,因此,后一个新打开的页面就可以控制前一个页面了.
如上图的a标签<a href='A.com'>打开A页面</a>
,如果打开的页面的域名和当前页面的域名是在同一个域名下,在打开后的控制台输入window.opener.alert(1)
,你会的发现上一个页面竟然弹出1。我们在打开的页面控制了前一个页面。如此是特别不安全的。
为了避免上述安全漏洞的发生,我们就需要在a标签上添加rel="noopener noreferrer"
属性,此时,当你打开新页面后,你会发现windwo.opener
已经被置为 null
。就这样,我们就避免了一次安全事故的发生
还没有评论,来说两句吧...