我想知道将 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

然后,应用程序将被限制在目录结构的树中。

其他提示

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

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

Flash 将检查 crossdomain.xml 文件是否存在于:

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

您可以将 crossdomain.xml 文件放置在其他位置。但是,当您需要从不同位置加载 crossdomain.xml 文件时,您必须通过 安全.loadPolicyFile 。请记住,此跨域的位置会对您的安全访问产生任何影响。Flash 将仅授予对包含跨域及其子文件夹的文件夹的访问权限。

您可能还想阅读 Flash Player 10 中的安全更改.

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

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

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

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

crossdomain.xml只是一个对Flash运行时有意义的文件;您可以限制哪些 HTTP 请求可以看到它。您可以使用网络服务器(例如Apache)配置控制以允许从“根”目录(参见前面的答案)对其(并且仅对它)进行读取访问。

您可以通过请求中的其他标头等进行过滤。

干杯

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top