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。就这样,我们就避免了一次安全事故的发生


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值