代码之家  ›  专栏  ›  技术社区  ›  Damien

Flex和跨域.xml

  •  7
  • Damien  · 技术社区  · 16 年前

    我想知道在应用服务器的根目录中添加crossdomain.xml是否存在安全问题?它可以添加到服务器的任何其他部分吗?您是否知道任何不需要服务器安装此文件的解决方案?

    谢谢 达米安

    5 回复  |  直到 12 年前
        1
  •  10
  •   Marc Hughes    16 年前

    通过添加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

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

        2
  •  1
  •   Ronnie Liew    16 年前

    跨域文件没有解决方法,需要支持跨域数据访问或跨域脚本。如果有任何跨域请求,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将只授予对包含跨域及其子文件夹的文件夹的访问权限。

    您可能还想阅读 security changes in Flash Player 10 .

        3
  •  0
  •   Alexandre Victoor    16 年前

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

        4
  •  0
  •   James Ward    15 年前

    对。请务必小心跨域策略文件:
    http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/

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

    • 不要在使用Cookie的服务器上放置跨域策略文件
    • 不要在内部服务器上放置跨域策略文件
        5
  •  -1
  •   Richard Haven    16 年前

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

    您可以按请求中的其他标头进行筛选等。

    干杯