本文主要是介绍乌云白帽大会笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
发信息“postMessage”方法
otherWindow.postMessage(message, targetOrigin);
otherWindow:指目标窗口,也就是给哪个window发信息,是window.frames 属性
window.open 方法创建的窗口
PostMessage
需要特别严谨验证:输入,origin
如:验证domain 是不是等于 “http://xxxxx.com”的 -》
popUp = window.open(domain+'其他路径',‘myWindow’); popUp.postMessage(message.domain);
然后建立监听事件:
window.addEventListener('xxx', function(event){if(event.origin !== domain) return;......
},false)
https的站不建议使用onmessage
不要相信任何人给发的链接
接受信息的 onmessage 事件
data: 信息
origin: 信息来源地址
source: 源DOMWindow 对象
var onmessage = function (event) {var data = event.data;var origin = event.origin;
}if (typeof window.addEventListener != 'undefined') {window.addEventListener('message', onmessage, false);
}else if (typeof window.attachEvent != 'undefined') {window.attachEvent('onmessage', onmessage);
}
空referer或JS的URL跳转漏洞会绕过白名单referer限制
window.open 到iframe里的时候,浏览器popup blocker不会提示
origin校验可能会不严谨:indexOf(“www.wooyun.org” ) !=-1
RegExp(“^http://www.wooyun.org$“) 这里的点可以表示任意字符
Ref:来自 乌云著名段子手—— 呆子不开口
这篇关于乌云白帽大会笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!