2

像这样的工具如何使 ajax 样式回调到中心站点?基本上他们给你一个“标签放在你的网站上。所以在这个小部件中,你可以要求向你发送一封电子邮件,以获取你当前所在的页面。我假设这会产生一个 ajax样式回调以分享发送电子邮件的人。但是,如果您的服务器上没有代理,并且浏览器不会将其作为 XSS 漏洞利用来阻止,他们怎么能做到这一点呢?

对此的任何答案将不胜感激,感谢您的帮助。我假设使用 Flickr API 会带来同样的挑战?

标题链接:http ://sharethis.com/

4

3 回答 3

6

他们为您提供了一个脚本以包含在您的站点中。此脚本对 DOM 和您的 cookie 具有完全访问权限。为了让它回调到他们的站点,他们使用了一种称为 JSONP 的技术。您包含的脚本在查询字符串中添加了另一个带有参数的脚本。然后服务器返回 JSON(它只是 JavaScript),并提取数据。

如果您正在构建 mashup,您必须相信这些小部件不会做一些恶意的事情,例如窃取您的 cookie。IE 8 将更好地支持安全 XSS。

于 2008-12-04T20:45:49.070 回答
1

您甚至不需要为此使用 JSON。

您可以使用脚本标记从任何域检索 javascript 代码,因此许多这些小部件只是创建一个脚本节点,响应格式如下:

someFunction("Callback Data");

someFunction 已经是原始小部件源中的现有函数,并将数据转储到您的 DOM 中。

于 2008-12-04T21:31:14.203 回答
0

答案是,由于某种原因,浏览器只阻止 XmlHttpRequests 发送到原始服务器以外的服务器。您可以自由使用具有 SRC 指向任何位置的 <SCRIPT>-tags,这样的脚本标签当然可以动态插入到您的 DOM 中。

于 2008-12-04T21:24:28.523 回答