乐趣区

关于postmessage:windowname和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

最初

  • 文章不易,请关注公众号 毛毛虫的小小蜡笔,多多反对,谢谢。
  • 有疑难和问题,请留言。
  • 如果感觉文章还能够,请点赞或珍藏,谢谢。
退出移动版