Using target=“_blank“ without rel=“noreferrer“ is a security risk:

  <a href="https://github.com/reactjs" target="_blank">
                    <img src="https://avatars.githubusercontent.com/u/6412038?v=3" style={ {width: '100px'}}/>
                  </a>

 报错提示:使用 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。就这样,我们就避免了一次安全事故的发生


 

猜你喜欢

转载自blog.csdn.net/qq_33769914/article/details/120262027