平时写页面链接到别人家的网站都没注意到这个rel="noopener"属性。最近发现原来还有这么个东西,就了解下了noopener属性的用途。下面来一起看下这属性是干嘛的。
属性作用的页面示例
页面代码
a.html
a b
b.html
b
页面运行起来,点击a页面的b链接打开新页面后会发现a页面已经跳转至百度了..(神奇不..)
why?
target="_blank"存在一个安全漏洞,新的页面可以通过window.opener访问窗口对象,并可以使用window.opener.location = newURL 将页面导航至不同的网址。(可能有被钓鱼攻击的风险)
如何规避?
使用targrt=_blank时加上rel=noopener,为了兼容火狐要加上rel=noreferrer
noopener有利于网站的安全性,并且对网站没有任何性能或SEO影响,所以可以放心添加。到这里才知道之前写的不少页面其实都是有一定安全风险的,这个noopener还是可以有的,嗯