Flex和crossdomain.xml

时间:2020-03-06 14:25:42  来源:igfitidea点击:

我想知道将crossdomain.xml添加到应用程序服务器的根目录是否存在任何安全问题?可以将其添加到服务器的其他任何部分吗?我们是否知道不需要服务器将文件放置在适当位置的解决方法?

谢谢
达米安

解决方案

通过添加crossdomain.xml,主要的安全问题是Flash应用程序现在可以连接到服务器。因此,如果有人登录到站点,然后使用恶意Flash应用程序浏览到另一个网站,则该Flash应用程序可以连接回站点。由于它在浏览器中,因此Cookie被共享到Flash应用程序。这使Flash应用程序可以劫持用户的会话,以执行网站所做的任何事情,而无需用户知道。

如果Flex应用程序是从同一服务器提供的,则不需要crossdomain.xml

我们可以将其放在站点的子目录中,然后使用System.security.loadSecurityPolicy()

http://livedocs.adobe.com/flex/2/langref/flash/system/Security.html

然后,应用程序将限于目录结构的那棵树。

我们可以为应用程序配置虚拟主机。这样,文件crossdomain.xml可以位于应用程序的根目录,而不必位于服务器的根目录。

crossdomain.xml只是对Flash运行时有意义的文件。我们可以限制HTTP请求可以看到的内容。我们可以使用网络服务器(例如Apache)配置控件,以允许从"根"目录对其进行读取访问(并且仅对其进行读取)(请参阅前面的答案)。

我们可以按请求中的其他标头进行过滤,等等。

干杯

跨域文件没有解决方法,它需要支持跨域数据访问或者跨域脚本。如果有任何跨域请求,Flash会在域的根目录下查找crossdomain.xml文件。例如,如果我们要从以下位置请求XML文件:

http:// mysubdomain.mydomain.com / fu / bar /

Flash将在以下位置检查是否存在crossdomain.xml文件:

http:// mysubdomin.mydomain.com / crossdomain.xml

我们可以将crossdomain.xml文件放置在其他位置。但是,当我们需要从其他位置加载crossdomain.xml文件时,则必须通过Security.loadPolicyFile进行操作。请记住,此跨域的位置对我们拥有的安全访问有任何影响。 Flash将仅授予对包含跨域文件夹及其子文件夹的文件夹的访问权限。

我们可能还需要阅读Flash Player 10中的安全性更改。

是的。跨域策略文件要特别小心:
http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/

我的两个一般经验法则是:

  • 不要在使用Cookie的服务器上放置跨域策略文件
  • 不要将跨域策略文件放在内部服务器上