0

我正在从另一个页面加载内容,并根据页面内容更改页面内容,这给了我跨站点脚本问题。

  1. 当我使用 iframe 时,由于内容来自其他域,iframe 的内容变得无法访问。
  2. 当我使用 ajax 并尝试将内容作为纯 html 代码注入时,XmlHttpRequest 对象由于跨站点脚本而引发权限被拒绝异常。
  3. 当我使用 JSONP 时,比如 JQuery 中的 getJSON,它只支持 GET 协议,不足以进行进一步的处理。

我想知道我可以尝试哪些其他选择。听说DOJO、GWT、Adobe Air做了一些XSS,但不知道哪个最好。

谢谢,埃贝。

4

3 回答 3

3

如果没有 JSON-P,您唯一的选择是在您自己的服务器上运行代理脚本,该脚本从外部站点获取内容并将其通过管道传回浏览器。

浏览器从您服务器上的脚本中获取内容,因此没有跨域问题,但您服务器上的脚本从外部站点动态获取它。

这里有一个这样的 PHP 脚本示例:http ://www.daniweb.com/code/snippet494.html (注意,我没有亲自使用过)。

于 2009-08-06T18:16:30.297 回答
1

如果您可以控制这两个域,请查看EasyXDM。它是一个包装跨浏览器怪癖的库,并提供了一个易于使用的 API,用于使用该浏览器的最佳可用机制在不同域之间的客户端脚本中进行通信(例如postMessage如果可用,其他机制如果不可用)。

警告:您需要控制两个域才能使其正常工作(其中“控制”意味着您可以在两个域上放置静态文件)。但是您不需要任何服务器端代码更改。

于 2010-05-04T17:53:14.233 回答
0

补充一下 RichieHindle 所说的,有一些很好的脚本 (Python+Cron),你可以在你的服务器上运行它,它会检查对 POST/GET 位置的更改并将更改缓存在你的服务器上。

要么将触发器设置得低(每 10 分钟一次/每天 1 次),要么您可能会被列入目标黑名单。

这样,本地缓存就不会在来自客户端的每个 AJAX 调用上产生 HTTP 开销。

于 2009-08-06T18:22:54.123 回答