AJAX跨站点脚本在自己的域之间

时间:2009-04-30 19:57:10

标签: javascript ajax xss

如果无论如何允许两个自己的域之间的AJAX没有代理黑客攻击,JSONP,Flash或浏览器安全性会发生变化?可能是SSL还是什么?

6 个答案:

答案 0 :(得分:2)

已签名的Java小程序可能能够执行此操作,但这与Flash的原理相同,因此可能无法满足您的要求。

a specification for cross domain requests,但它仍处于开发阶段。

答案 1 :(得分:1)

据我所知,这里最好的选择是创建一个服务器资源,您可以将AJAX调用指向它,然后将它们转发到另一个域上的第二台服务器,然后将结果传送回您的应用程序。

答案 2 :(得分:1)

您可以尝试一种称为'Ajast'的技术。

基本上,您在域A上的javascript会根据需要向页面添加其他<script>个标记。这些脚本标记指向域B上的javascript文件(不一定是静态.js),允许您从域B加载数据。

答案 3 :(得分:1)

在我有类似需要跨域工作的情况下,我通过使用与嵌入页面颜色相同的嵌入式无边框iframe来回避它。这是一种古老的技术,早于广泛的AJAX使用,现在经常被忽视,因为'我们将使用AJAX'的心态。但是你可以用这种方法做很多事情,如果你真的被卡住了就足够了。当然,您可以在嵌入页面和主页面之间编写一些非常复杂的交互,这在某种程度上可以为支持AJAX的页面提供类似的用户体验。

虽然确实发生了一个明显的想法,而且我从未尝试过 - 可以在主页面(即第一个域)内嵌入第二个域的iframe,并通过主页面与第二个域进行通信嵌入式iframe?

答案 4 :(得分:0)

只需使用easyXDM,即可在不同域的文档之间轻松进行通信。看看其中一个例子http://consumer.easyxdm.net/current/example/methods.html

答案 5 :(得分:0)

是的,如果你使用Apache,有一个简单的方法。更改apache的httpd-vhosts.conf文件中的设置(我正在使用Apache 2.2)

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.com
DocumentRoot “C:/apache-tomcat-6.0.29/webapps/myApplication”
ServerName skill-guru.com
ErrorLog “logs/skg1-error.log”
CustomLog “logs/skg1-access.log” common


Header set Access-Control-Allow-Origin “*”

<Directory “C:/apache-tomcat-6.0.29/webapps/myApplication”>
Options -Indexes FollowSymLinks
AllowOverride AuthConfig FileInfo
Order allow,deny
Allow from all
</Directory>

JkUnmount /*.jsp ajp13

</VirtualHost>

Cross site scripting with Apache