Javascript 同一域、不同子域上的跨站点脚本

Javascript 同一域、不同子域上的跨站点脚本,javascript,iframe,xss,Javascript,Iframe,Xss,我有一个iframe,我正在使用它将一些由第三方供应商托管的内容拉到我们的网站上。我们正试图确定该内容的高度,以调整iframe高度,但我遇到了跨站点脚本错误。我不知道子域算是一个跨站点。有什么方法可以解决这一问题,而不必将它们保留在匹配的子域上 作为参考,我们的每周营销由第三方供应商在flash中主持,但通过子域,我们可以重定向到他们,同时将用户保留在我们的域中以用于cookie目的 从您的一个子域,您可以(除某些例外)设置该域以允许更广泛地访问同一主域中的其他子域 请看这一页: 另请看 这第

我有一个iframe,我正在使用它将一些由第三方供应商托管的内容拉到我们的网站上。我们正试图确定该内容的高度,以调整iframe高度,但我遇到了跨站点脚本错误。我不知道子域算是一个跨站点。有什么方法可以解决这一问题,而不必将它们保留在匹配的子域上


作为参考,我们的每周营销由第三方供应商在flash中主持,但通过子域,我们可以重定向到他们,同时将用户保留在我们的域中以用于cookie目的

从您的一个子域,您可以(除某些例外)设置该域以允许更广泛地访问同一主域中的其他子域

请看这一页:

另请看

这第一个页面是发送者-它调用postMessage(发送文本消息),并且还保存了接收窗口所在的iframe


window.onload=函数(){
var win=document.getElementById(“iframe”).contentWindow;
document.getElementById(“表单”).onsubmit=函数(e){
win.postMessage(document.getElementById(“msg”).value);
e、 预防默认值();
};
};
follow页面是接收者——它绑定了一个事件监听器,用于监视传递给它的消息并将它们注入DOM

此iframe位于dev.jquery.com上
给我留言!
文件.附录列表器(“消息”,功能(e){
document.getElementById(“测试”).textContent=
e、 域名+”表示:“+e.data;
},假);

与我一起工作的供应商没有立即同意这一点,但我对此进行了测试,结果成功了,所以我知道这至少是可行的。谢谢虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会无效。确定。。但是在这里,我不得不从页面上复制很多内容来展示这个例子。
<iframe src="http://dev.jquery.com/~john/message/" id="iframe"></iframe>
<form id="form">
  <input type="text" id="msg" value="Message to send"/>
  <input type="submit"/>
</form>
<script>
window.onload = function(){
        var win = document.getElementById("iframe").contentWindow;
        document.getElementById("form").onsubmit = function(e){
                win.postMessage( document.getElementById("msg").value );
                e.preventDefault();
        };
};
</script>
<b>This iframe is located on dev.jquery.com</b>
<div id="test">Send me a message!</div>
<script>
document.addEventListener("message", function(e){
        document.getElementById("test").textContent =
                e.domain + " said: " + e.data;
}, false);
</script>