只有在使用了 href 属性才能使用 rel属性。
这是由于当用户点击了网站A中带有target="_blank"属性的超链接后,浏览器会单独新建一个标签页来显示该链接所指向的内容。
但是请注意,在这一瞬间,浏览器会允许新建的标签页通过一个名为"window.opener"的浏览器API来与网站A进行短暂通信。
此时,攻击者就可以将恶意代码嵌入在新打开的网站B中,然后检测用户是从哪一个网站跳转过来的,最后再利用 window.opener.location.replace
接口来更改前一个页面的url或者迫使原始网页A打开一个新的URL地址。甚至在跨域的情况下他也可以生效
在新打开的页面中,通过window.opener可以获取到源页面的部分控制权,即使新打开的页面是跨域也可以获取部分控制权。
当a标签中加入了rel="noopener noreferrer"属性,就会window.opener会为null。rel="noopener noreferrer"
noreferrer是由于Firefox不支持noopener而添加的
关于a标签的rel=nooppener
最新推荐文章于 2024-08-08 13:22:08 发布