ce安全网绿色资源分享

教程资讯|常用软件|安卓下载|下载排行|最近更新

软件
软件
文章
当前位置:首页网络安全安全文章 → postMessage跨域漏洞分析

postMessage跨域漏洞分析

时间:2018-05-08 16:56:49人气:作者:本站作者我要评论

前言:

postMessage是HTML5衍生出来的,用来规范跨域的问题。但由于使用者不注意一些安全性,可能会产生一些漏洞,这篇文章介绍可能产生的问题。

postMessage跨域漏洞分析

如何工作

为了跨域去发送一些数据,应用会用如下的语句去发送

  1. targetWindow.postMessage(data, "*");
  2. data为数据,"*"为接收端

为了去接受一些数据,接收端会添加一个事件监听器用来接受跨域传输过来的数据

  1. window.addEventListener("message"function(message){console.log(message.data)});

可能会出现的问题
Issue One:

  1. targetWindow.postMessage(data, "*");

如上代码,第一个问题就产生在这里,当postMessage的第二个参数为"*"时,也就意味着数据可以被跨域传送到任何地方,如果这个数据为个人数据或者其他隐私呢?结果显而易见。

Issue Two:

  1. //Listener on
  2. window.addEventListener("message"function(message){
  3.     if(/^http://www.bywalks.com$/.test(message.origin)){
  4.          console.log(message.data);
  5.    }});

如上代码,这是产生在接收端的问题。上面的代码通过正则来规范传输端,这里我们要着重关注".",你看出问题了么?
因为在正则里面,"."匹配\r之外的任意单字符。

Issue Three:

  1. //Listener on  
  2. window.addEventListener("message"function(message){
  3.    if(/^http://www\.bywalks\.com$/.test(message.origin)){
  4.       document.getElementById("message").innerHTML = message.data;
  5.    }});

这是一个基于DOM的XSS,如上代码,id=message的事件文本内容为跨域传送来的data。
正确代码

  1. var data = JSON.parse(decodeURIComponent(document.getElementById('data').value));
  2. // cross browser origin determination
  3. var origin = (window.location.protocol + '//' + window.location.hostname
  4.   + (window.location.port ? ':' + window.location.port : ''));
  5. if (window.opener) {
  6.   window.opener.postMessage(data, origin);
  7. else {
  8.   // attempt to redirect back to the origin
  9.   window.location = origin;
  10. }

如上代码,这里就规范了origin,避免产生把data发送到其他网站的信息泄露事件与此同时,接收端也应该做出限制。

相关文章

猜你喜欢

  • 深入解析浅谈《快3单双准确率方法》成功方案

    2022-09-28 /

  • 全网首发《快3单双大小必中方法技巧》思路汇总

    2022-09-28 /

  • 资深攻略《快3大小必中技巧》上岸方法

    2022-09-28 /

  • 【最准确的玩法】《回血上岸计划导师QQ》操作系列

    2022-09-28 /

  • 经验教程《导师一分快三计划》最新窍门

    2022-09-28 /

  • 高手教你《大小单双最安全的打法》三期必中

    2022-09-28 /

网友评论

验证码:

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

最新评论

已有人参与,点击查看更多精彩评论

本类推荐

关于CE安全网 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2029 cesafe.com 【CE安全网】 版权所有 琼ICP备2021004244号-1| 琼ICP备2021004244号-1

声明: 本站为非赢利性网站 不接受任何赞助和广告 所有软件和文章来自互联网 如有异议 请与本站联系 技术支持:ce安全网