您现在的位置是:首页 > 网站制作 > 网站建设网站建设

a标签target=”_blank”的安全问题及解决办法

胜于蓝2019-07-30【网站建设】人已围观

简介一、定义A 标签的 target 属性规定在何处打开链接文档。如果在一个 A 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性命名的、名称与这个目标吻合

一、定义cTB胜于蓝|优秀个人博客

A 标签的 target 属性规定在何处打开链接文档。如果在一个 A 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性命名的、名称与这个目标吻合的框架或者窗口中的文档。如果这个指定名称或 id 的框架或者窗口不存在,浏览器将打开一个新的窗口,给这个窗口一个指定的标记,然后将新的文档载入那个窗口。从此以后,超链接文档就可以指向这个新的窗口。target="_blank"的意思是新的浏览器窗口打开此超链接,但是大多数人都没有注意到这个属性其实是有安全缺陷的,当我们在这样的写的时候一个非常简单的钓鱼攻击的漏洞就这样产生了。cTB胜于蓝|优秀个人博客

二、原理cTB胜于蓝|优秀个人博客

熟悉js的朋友都应该知道当我们在调用window下的open方法创建一个新窗口的同时,我们可以获得一个创建窗口的opener句柄,但你也许没注意到,通过target="_blank"点开的窗口活着标签页,子窗口也能捕获opener句柄,通过这个句柄,子窗口可以访问到父窗口的一些属性,虽然很有限,但是我们却可以修改父窗口的页面地址,让父窗口显示指定的页面。cTB胜于蓝|优秀个人博客

举个例子,在页面a.html中有这样一段代码:cTB胜于蓝|优秀个人博客

1 <a href="b.html" target="_blank">跳转</a>;

当我们点击页面a.html中的跳转链接时,浏览器会在新的窗口或标签页中打开b.html,假如这个时候b.html中有这样一段js代码:cTB胜于蓝|优秀个人博客

1cTB胜于蓝|优秀个人博客
2cTB胜于蓝|优秀个人博客
3
if (window.opener) {cTB胜于蓝|优秀个人博客
    window.opener.location.href = 'eval.html';cTB胜于蓝|优秀个人博客
}

当页面b.html被打开的同时原来打开a.html的标签页会被重定向到eval.html, eval.html可以是和原来域完全不相关的其它域的资源。cTB胜于蓝|优秀个人博客

是不是突然有点后怕,其实也不用过分担心,出现这种情况的几率还是比较小的,首先我们自己站内的资源是受信的,能放到站内的其他网站基本也是站长自己加的,当然不排除被黑的情况,那么我们该如何防范呢?cTB胜于蓝|优秀个人博客

三、防范cTB胜于蓝|优秀个人博客

如果需要限制window.opener的访问行为,我们只需要在原始页面每个使用了target="_blank"的链接中加上一个rel="noopener"属性。但是,火狐并不支持这个属性值,火狐浏览器里需要写成rel="noreferrer",所以我们可以将两个属性值合并写成rel="noopener noreferrer"来完整覆盖。这样子页面就再也访问不到父页面的句柄了。当然,我们也可以通过js来控制来限制句柄的访问,代码如下:cTB胜于蓝|优秀个人博客

1cTB胜于蓝|优秀个人博客
2cTB胜于蓝|优秀个人博客
3
var otherWindow = window.open();cTB胜于蓝|优秀个人博客
otherWindow.opener = null;cTB胜于蓝|优秀个人博客
otherWindow.location = url;

四、总结cTB胜于蓝|优秀个人博客

在开发中,一些小细节还是要引起注意,别怕麻烦,比如我们以后在写a标签的时候尽量都在target="_blank"后面添加一句 rel="noopener noreferrer"。cTB胜于蓝|优秀个人博客

Tags:

很赞哦! ()

文章评论

当前时间

快速排名

  • 网站建设|万词霸屏,企业软文推广,刷下拉框
  • 快速排名:不用再等SEO三个月,只需3-7天即可把行业关键词覆盖百度搜索引擎首页,点击不收费,排名报表,真实访问量报表一目了然。

合作加盟

  • 扫码请注明来意,否则不会通过
  • 填写商户姓名不要带有“超市”,“便利店” ,“百货”等
  • 扫码成为快钱代理
  • 扫码加站长微信,为您推荐快钱总部负责人
  • 快钱POSS机(电签版)
  • 1,免押版:签约费率快捷交易0.38%,常规交易0.65%
  • 贷记卡单笔≥3000元视为激活
  • 2,,有押版:签约快捷交易0.38%,常规交易0.65%
  • 激活首刷≥99元,扣除99元系统服务费,多出部分shishi到账
  • 电签版ipos参与每月扶持奖励
  • 电签版ipos与Mpos单独考核台均
  • 30台以上有效激活奖励3000元扶持金
  • 当月交易额≥3000元的为活跃用户

站点信息

  • 建站时间:2018-10-24
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计7074篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 扫描二维码:请注明来意,否则不会通过
  • 微信号:扫描二维码,关注我们
歌名 - 歌手
0:00