一、伪造数据发送方
攻击方式:伪造一个父页面,引导使用者触发功能,发送消息给子页面,如果子页面将父页面发送的消息直接插入当前文档流,就是引发XSS攻击,或者子页面使用父页面传递的消息进行其他操作,例如写入数据,造成安全问题。
防范方式:子页面iframe对接收到的message信息做域名限制
// 子页面iframePage.html//监听message事件
window.addEventListener("message", function(event){
origin = event.origin || event.originalEvent.origin
if(origin == 'https://A.com'){
console.log( '这里是接收到来自父页面的消息,消息内容在event.data属性中', event )
}
}, false)
二、伪造数据接收方
攻击方式:伪造一个子页面,在父页面中引入子页面,在伪造的页面中接收父页面发送的消息,此时可以获取用户的敏感消息。
防范方式:父页面对发送消息的页面做域名限制
// 父页面index.html//获取iframe元素
iFrame = document.getElementById('iframe')
//iframe加载完毕后再发送消息,否则子页面接收不到message
iFrame.onload = function(){
//iframe加载完立即发送一条消息
iFrame.contentWindow.postMessage('MessageFromIndexPage','https://B.com');
}









