【发布时间】:2012-02-14 03:10:11
【问题描述】:
我知道跨浏览器域调用的解决方案。使用 JSONP、进行代理调用或接受服务器上的域。我今天在公司发现了另外一种奇怪的方式。
方法:
他们正在更改主机以匹配第二台服务器的主机使用这个 -
window.location.host = "xyz.com";
or
document.domain = "xyz.com";
然后他们正在创建一个隐藏的 iframe 并在 iframe 中获取内容并将内容替换为可见元素。
问题:
它适用于 iframe,但如果我进行 ajax 调用,它就不起作用。这有什么要说的吗?
【问题讨论】:
-
这听起来像是一个错误或漏洞利用。您在哪些浏览器中对此进行了测试?
-
它适用于 IE、Chrome。我没有在 Firefox 中测试
-
我不确定
window.location.host,但更改document.domain确实允许同一父域上的两个不同子域进行通信。 developer.mozilla.org/en/Same_origin_policy_for_JavaScript
标签: javascript ajax