去哪铺资源网

`window.opener`属性

本文摘要

`window.opener`属性可返回创建当前窗口的父窗口引用,用于跨窗口通信。然而,非由其他窗口打开的窗口可能返回`null`或`undefined`。需警惕利用此属性的反向标签劫持攻击。建议使用`target="_blank"`时添加`rel="noopener noreferrer"`以增强安全。

`window.opener`是一个可读可写的属性,用于返回对创建当前窗口的父窗口的引用。当在一个窗口中访问`window.opener`属性时,它会返回打开该窗口的父窗口对象。通过该属性,可以使用父窗口对象中的方法和属性,实现跨窗口的数据传递和操作。

例如,通过`window.opener`可以访问父窗口的全局变量、函数和对象,这在子窗口中获取父窗口的数据或调用父窗口的方法时非常有用。

然而,如果窗口不是由其他窗口打开的,`window.opener`属性在某些浏览器(如Netscape)中返回`null`,而在另一些浏览器(如IE)中返回“未定义”(undefined)。需要注意的是,`undefined`不是JavaScript的常数,如果尝试使用它,将真的返回“未定义”。

此外,需要警惕反向标签劫持这种网络攻击技术,它利用了`window.opener`属性。当用户在浏览器中通过点击一个带有`target="_blank"`属性的链接打开一个新标签页时,攻击者可能会利用新标签页与原始标签页之间的窗口关系(通过`window.opener`属性),执行恶意脚本或重定向,从而影响或控制原始标签页的内容或行为。为了防范这种攻击,除了避免不必要地使用`target="_blank"`之外,推荐的做法是在使用`target="_blank"`的同时,添加`rel="noopener noreferrer"`属性。

总的来说,`window.opener`属性在JavaScript中提供了与打开当前窗口的父窗口之间的通信和交互的能力,但在使用时需要注意安全和隐私保护的问题。


搜索
分类最新
分类热门
分类猜你喜欢
© Copyright去哪铺.Z-Blog.Some Rights Reserved.粤公网安备 44170202000251号 粤ICP备15035385号-2 免责声明 帮助中心 编程文档