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

最后

  • 文章不易,请关注公众号 毛毛虫的小小蜡笔,多多支持,谢谢。
  • 有疑问和问题,请留言。
  • 如果觉得文章还可以,请点赞或收藏,谢谢。

你可能感兴趣的:(postmessage)