首页 > 试题广场 >

带有target="_blank"的a标签被认为是有安全风险

[不定项选择题]
带有 target="_blank" 的 a 标签被认为是有安全风险的,因为点击它后打开的新标签页面可以通过 window.opener.location = 来将来源页面跳转到钓鱼页面,不过给该 a 标签增加下面哪些属性就能阻止这一行为?
  • rel="nofollow"
  • rel="noopener"
  • rel="noreferrer"
  • rel="opener"

a标签常用rel属性

rel=’external’

此属性的意思是告诉搜索引擎,这个链接不是本站链接,其实作用相当于target=‘_blank’。
为什么要这样写呢?因为有些网站因为是采用严格的DOCTYPE声名的,如果你在网页源码中的第一行看到:在这种情况下target=”_blank”会失效,因此采用rel=’external’这个参数来替代。

rel=’nofllow’

它是告诉搜索引擎,不要将该链接计入权重。因此多数情况下,我们可以将一些不想传递权重的链接进行nofllow处理;例如一些非本站的链接,不想传递权重,但是又需要加在页面中的像 统计代码、备案号链接、供用户查询的链接等等。

rel=“noopener noreferrer”

在新打开的页面(baidu)中可以通过 window.opener获取到源页面的部分控制权, 即使新打开的页面是跨域的也照样可以(例如 location 就不存在跨域问题)
在chrome 49+,Opera 36+,打开添加了rel=noopener的链接, window.opener 会为null。在老的浏览器中,可以使用 rel=noreferrer 禁用HTTP头部的Referer属性,使用下面JavaScript代替target=’_blank’ 的解决此问题

发表于 2021-08-15 16:14:41 回复(0)