`

Flex的crossdomain.xml问题

阅读更多

玩过Flex或者Flash的同学都知道,如果想要在Flash里面跨域获取数据,就必须在对方server上配置crossdomain.xml。具体来说,比如你的Flash在domain A下面,而你想要访问domain B暴露的web service,那么domain B的server根目录下必须要有一个crossdomain.xml文件来配置说你有这个权限。这个是Flash Player的安全限制。

 

对于Flash Player 9之前的版本,这个crossdomain.xml文件大概如下:

 

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE cross-domain-policy SYSTEM   
  3.     "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >  
  4. <cross-domain-policy>  
  5.     <allow-access-from domain="*" secure="true" />  
  6. </cross-domain-policy>  

以上配置允许所有domain访问当前server所暴露的数据(比如web service)。你可以在domain属性里面指定特殊的规则。secure属性用来设置你所暴露的数据是否走https协议。

 

 

但是对于Flash Player 9而言,crossdomain.xml文件内容出现了较大的变化,原因是Flash Player 9的security机制有所改变。所以当我用Flex 3调用cross domain的web service时,还使用上面的crossdomain.xml文件,结果就报错说security error。于是稍微研究了一下,得到如下解决方案,其实就是要改变crossdomain.xml的内容:

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE cross-domain-policy SYSTEM   
  3.     "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >  
  4. <cross-domain-policy>  
  5.     <site-control permitted-cross-domain-policies="all" />  
  6.     <allow-access-from domain="*" />  
  7.     <allow-http-request-headers-from domain="*" headers="*"/>  
  8. </cross-domain-policy>  

 以上是Flash Player 9所要求的crossdomain.xml的内容。可以看到多了两个tag。其中site-control是可选的,但是allow-http-request-headers-from对于cross domain的web service确实必须的。如果没有允许header,就会像我之前一样报错。这些配置项的具体含义以及其他可选配置项,可以参考http://www.adobe.com/devnet/flashplayer/articles/flash_player_9_security.pdf

分享到:
评论

相关推荐

    webloigc 中设置 flex crossdomain.xml 文件

    `crossdomain.xml`文件是Adobe Flex应用程序用于定义安全策略的一个关键组件,它允许来自不同源的Flash Player或Flex客户端与服务器进行通信。本篇文章将深入探讨如何在WebLogic环境中设置这个文件,以及它对跨域...

    Flash flex与JS通信

    当Flex应用试图从不同源加载数据或调用JavaScript时,Flash Player会检查目标服务器的根目录下是否存在crossdomain.xml文件。这个文件定义了哪些域被允许访问,以及允许的访问权限。例如,如果一个Flex应用在一个域...

    crossdomain

    在IT行业中,跨域安全是Web开发中的一个重要概念,...总之,`crossdomain.xml`是解决跨域安全问题的关键工具,特别是在Flex与GIS服务交互的场景中。理解和正确使用这个文件是提升用户体验和保障数据安全的重要一环。

    tomcat跨域解决方案

    为了解决这类问题,本文将介绍如何通过编写`crossDomain.xml`文件来实现跨域访问。 #### 二、解决方案 为了解决Tomcat在IP和端口不同时引发的跨域问题,可以通过编写并配置`crossDomain.xml`文件来实现跨域支持。...

    BlazeDS入门:HTTP Service

    无论是哪种方案,都需要在服务器端 Web 应用的根目录下配置 crossdomain.xml。 使用服务器端代理,可以简单在服务器端定义 DefaultHTTP,打开 proxy-config.xml,如下配置。其中*号表示 ...

    flex 沙箱安全问题

    4. **使用Flex SDK工具**:可以利用Flex SDK中的工具来帮助诊断和解决跨域问题,例如使用`mx.managers.SecurityManager.checkPolicyFile()`函数检查crossdomain.xml文件的有效性。 5. **调试模式**:启用Flash ...

    flex 安全沙箱问题备忘

    最后,当在Flex代码中加载crossdomain.xml文件时,需要使用Flash Player提供的Security类加载策略文件: ```actionscript Security.loadPolicyFile("***"); ``` 通过这行代码,***域下的Flash应用会提前加载***域...

    ArcGIS API for Flex开发WebGIS中的安全沙箱问题

    当使用ArcGIS API for Flex进行跨域请求时,比如获取地图服务、图层或地理编码数据,Flash Player的安全策略会阻止这些操作,除非服务器返回一个合适的Cross-Origin Resource Sharing (CORS)头或者一个crossdomain....

    Flex 安全沙箱问题 简单处理方法

    Flex安全沙箱问题是一个在开发基于...总的来说,解决Flex安全沙箱问题需要深入理解沙箱机制、跨域策略和`crossdomain.xml`文件的配置,同时关注服务器端的实现细节,以确保应用程序既能正常运行,又能保障用户的安全。

    Flex跨域问题

    Flex跨域问题,对于Flash Player 而言,crossdomain.xml文件内容出现了较大的变化,原因是Flash Player 9的security机制有所改变。所以当我用Flex 3调用cross domain的web service时,还使用上面的crossdomain.xml...

    flex跨域访问问题

    在服务器上创建或修改`crossdomain.xml`,包含允许Flex应用访问的源信息,例如: ```xml &lt;cross-domain-policy&gt; &lt;allow-access-from domain="*" secure="false"/&gt; &lt;/cross-domain-policy&gt; ``` 这将允许任何...

    weblogic跨域flex

    创建一个XML文件,例如`crossdomain.xml`,并将其放置在WebLogic服务器的根目录下。这个文件定义了哪些来源(domains)的请求被允许访问服务器资源。以下是一个基本的`crossdomain.xml`文件示例: ```xml &lt;?xml ...

    在Flex中发布地图 程序报错 SecurityError: Error #2048: 安全沙箱冲突,只需要下载添加这个就可以

    真正解决我问题的操作是这样的,在安装 arcgis后,C:\Inetpub\wwwroot\ArcGis\rest\的下面有个crossdomain.xml,把这个文件复制到C:\Inetpub\wwwroot的下面就可以了。 或者直接下载文件复制到里面就可以解决。

    ActionScript 3.0安全沙箱及相关问题资料

    《主策略文件crossdomain.xml .txt》和《flash跨域策略文件crossdomain.xml配置详解.txt》是关于如何配置和理解`crossdomain.xml`文件的资料。这个文件可以设置在服务器根目录下,以允许特定域的Flash内容访问该...

    lex for arcgis java tomcat环境不能跨域问题 (安全沙箱问题2048

    总的来说,解决Flex for ArcGIS在Java Tomcat环境下的跨域问题,主要涉及理解浏览器的同源策略,正确配置`crossdomain.xml`文件,并确保服务器重启以使更改生效。对于开发和测试环境,广泛接受的权限设置可能是合适...

    flex socket解决安全沙漏

    在尝试与远程服务器建立Socket连接时,如果不在跨域策略文件(crossdomain.xml)的允许范围内,Flash Player会阻止这种行为,这就是所谓的“安全沙漏问题”。 解决安全沙漏问题通常需要以下步骤: 1. **配置服务器...

    源于FLEX中的安全沙箱问题

    跨域访问通常需要使用`crossdomain.xml`策略文件,并在被访问的SWF中使用`Security.allowDomain()`或`Security.allowInsecureDomain()`。双向访问时,双方都需要设置相应的策略。 总结,Flash Player的安全沙箱是...

    flex 博客阅读器 实现代码

    - `useProxy`属性设置为`false`表示不使用代理,因为目标服务器已设置了跨域策略文件`crossdomain.xml`。 5. **数据处理** - 获取到博客数据后,需要对其进行解析并展示给用户。 - 可以通过监听HTTPService组件...

    FlashSec:存储库旨在编译可在渗透测试期间使用的脚本和工具,以评估不同闪存相关场景的安全性

    Crossdomain.mxml:用 FLEX 编写的脚本,利用宽松的跨域 Flash 策略文件向目标网站发出任意请求。 要编译,只需下载 FLEX SDK(可从)并运行mxmlc : $ ./mxmlc Crossdomain.mxml Loading configuration file C:\...

    Flex与Java通信

    在Tomcat的`\webapps\ROOT`目录下添加`crossdomain.xml`文件,允许来自任何域名的访问,以解决安全沙箱限制。 总结起来,实现Flex与Java通信涉及多个步骤,包括配置BlazeDS、设置XML文件、处理部署问题、满足Flex类...

Global site tag (gtag.js) - Google Analytics