专栏名称: 创宇前端
目录
相关文章推荐
前端早读课  ·  【第3520期】Slack、Notion ... ·  15 小时前  
前端早读课  ·  【图书】MCP原理与实战:高效AI ... ·  15 小时前  
脚本之家  ·  大厂都在用的 12 大主流 AI ... ·  昨天  
脚本之家  ·  大厂都在用的 12 大主流 AI ... ·  昨天  
51好读  ›  专栏  ›  创宇前端

危险的 target="_blank" 与 “opener”

创宇前端  · 掘金  · 前端  · 2018-03-07 06:29

正文

请到「今天看啥」查看全文


危险的 target="_blank" 与 “opener”

在网页中使用链接时,如果想要让浏览器自动在新的标签页打开指定的地址,通常的做法就是在 a 标签上添加 target等于"_blank" 属性。

然而,就是这个属性,为钓鱼攻击者带来了可乘之机。

起源

parent opener

在说 opener 之前,可以先聊聊 <iframe> 中的 parent

我们知道,在 <iframe> 中提供了一个用于父子页面交互的对象,叫做 window.parent ,我们可以通过 window.parent 对象来从框架中的页面访问父级页面的 window

opener parent 一样,只不过是用于 <a target="_blank"> 在新标签页打开的页面的。通过 <a target="_blank"> 打开的页面,可以直接使用 window.opener 来访问来源页面的 window 对象。

同域与跨域

浏览器提供了完整的跨域保护,在域名相同时, parent 对象和 opener 对象实际上就直接是上一级的 window 对象;而当域名不同时, parent opener 则是经过包装的一个 global 对象。这个 global 对象仅提供非常有限的属性访问,并且在这仅有的几个属性中,大部分也都是不允许访问的(访问会直接抛出 DOMException )。







请到「今天看啥」查看全文