用于跨站点脚本的 API?

Posted

技术标签:

【中文标题】用于跨站点脚本的 API?【英文标题】:API for cross-site-scripting? 【发布时间】:2012-08-25 04:23:13 【问题描述】:

有没有办法用javascript向非合作网站发送HTTP请求?我知道这是因为同源策略而被禁止的,但是有什么方法可以做到,包括实验性 API、Java 小程序、Flash、浏览器扩展、隐藏设置、特殊证书等?如果用户明确地必须授予我的页面访问其他站点的权限,那很好,实际上这是非常合理的。

背景:我正在尝试通过抓取多个站点的 html 来进行混搭,我想从用户的 IP 地址而不是从我的服务器进行。

【问题讨论】:

我认为这与 XSS 无关。 是的,有几种方法。最可靠的是位于您自己的服务器上的代理。 Here's 我现在找到的更简单的方法。我还建议使用iframe,您可以使用javascript 简单地操作它的src 属性。 我相信所有成熟的浏览器都允许他们的扩展/插件进行跨域访问。您可能会编写从跨域站点获取信息的插件,然后通过 JavaScript API 提供数据。当然,这种方法的问题是您需要为每个浏览器维护一个单独的扩展。 【参考方案1】:

只是一个想法 - 如果这些网站中的任何一个使用 JQuery - 这种隧道方法可能会起作用: http://benv.ca/2011/3/7/subdomain-tunneling-with-jquery-and-document-domain/

在您网站的页面中创建一个 iframe,将来自其他网站的页面加载到其中,将页面的 jquery ajax 对象替换为 iframe 中的对象 - 您可以开始了!

如果你尝试,请告诉我:)

【讨论】:

以上是关于用于跨站点脚本的 API?的主要内容,如果未能解决你的问题,请参考以下文章

XSS跨站点脚本的介绍和代码防御

Python Flask 跨站点 HTTP POST - 不适用于特定允许的来源

跨站点脚本帮助?

防止来自静态站点的跨站点脚本攻击

加强跨站点脚本:糟糕的验证 JSF

通过 URL 进行跨站点脚本