Categories
程式開發

target = “_ blank”背后的隐藏漏洞


通常,在网页中使用链接时,如果希望浏览器在新选项卡中打开指定的URL,就会在a标记上添加属性target = “_blank”。

但也恰恰是这个属性为网络钓鱼攻击者提供了可趁之机。

基础知识

parent和opener

在谈论opener之前,让我们首先看一下中的parent。

我们知道,用于父子页面交互的对象通常是在中提供的,这个对象就是window.parent。我们可以通过window.parent对象从iframe的页面中访问父页面的window对象。

opener与parent一样,但它只用于通过在新标签页中打开页面。你可以直接使用window.opener从通过打开的页面中访问源页面的window对象。

同域和跨域

浏览器提供了完整的跨域保护功能。当域名相同时,parent对象和opener对象都是父页面的window对象。当域名不同时,parent和opener是global对象。这个global对象只提供对属性的非常有限的访问,而且不允许访问大多数属性(如果尝试访问它们将直接抛出DOMException)。

原文链接:【https://www.infoq.cn/article/lmdiIzFzb8JvU9lkKTbi】。未经作者许可,禁止转载。