• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
京亟
很多时候,我们以为面前是大海、是沟壑、是深渊,但是当你越过去回头再看的时候,那不过是溪流、是台阶、是浅滩。 联系方式:jinqiqaq@foxmail.com
博客园    首页    新随笔    联系   管理    订阅  订阅

a标签中target属性为“_blank”时存在安全问题

今天看到一个比较有意思的洞,虽然不够严重,但是却普遍存在各大src中

熟悉js的朋友都应该知道当我们在调用window下的open方法创建一个新窗口的同时,我们可以获得一个创建窗口的opener句柄,但你也许没注意到,通过target="_blank"点开的窗口活着标签页,子窗口也能捕获opener句柄,通过这个句柄,子窗口可以访问到父窗口的一些属性,虽然很有限,但是我们却可以修改父窗口的页面地址,让父窗口显示指定的页面(引用:https://blog.csdn.net/chinashanzhang/article/details/88537581)

 

复现下

准备a页面:

 

里面仅有一个a标签,点击后会跳转到b.html(实际场景中b.html一般是放在攻击者服务器中),内容如下:

 

 

这样当用户点击a.html中的链接后,会打开一个新的页面b.html,而马上a.html将会跳转到http://www.baidu.com(实际场景中一般是钓鱼网站)

 

修复方法:

在开发中,我们以后在写a标签的时候尽量都在target="_blank"后面添加一句 rel="noopener noreferrer"。

 

posted @ 2019-10-26 12:48  京亟QAQ  阅读(558)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3