window.name和postMessage跨域详解

文章不易,请关注公众号 毛毛虫的小小蜡笔,多多支持,谢谢。

 

概念

window.name

1、在一个窗口还没关闭之前,同一个窗口的所有页面都共享同一个window.name。

这个窗口可理解为chrome浏览器的一个tab标签页面。另外,从一个页面中跳转到另一个页面后,这些页面都共享同一个window.name。

2、每个页面都能读和写window.name。

这个可能就是安全问题的来源。

3、window.name在chrome上可存储小于等于2MB的数据。

postMessage

可以安全地实现的跨源通信。

语法:
otherWindow.postMessage(message, targetOrigin, [transfer]);

事件:
window.addEventListener("message", receiveMessage, false);
message的属性有:data, origin, source

 

安全问题比较

攻击者页面:A
受害者页面:B

 

详情 请查看:毛毛虫的小小蜡笔 

 

posted @ 2022-04-18 16:41  simonbaker  阅读(133)  评论(0)    收藏  举报