一直对flash 的安全域 和 crossdomain 比较迷惑。
由于之前开发flash一直是在同一个域下开发的,也不会出现问题,但是在线上环境,由于各种资源的位置不同,
就会产生一系列问题。
痛定思痛,花时间理解透吧。
假定: A 域下的 main.swf 调用 B域下的 module.swf
1、如果 仅仅是按资源调用,即不会访问被加载者的数据。这个的话,main.swf不需要任何的授权就可以访问module.swf
2、如果 是要使用 module.swf 中的数据的话,module.swf 里面必须 Security.allowDomain("A");
但是介于加载 module 的方式不同又有所区别。
a、加载到一个新的应用域或者当前域的子域的话,LoaderContext 只需要声明 applicationDomain 即可,
其他不需要授权,但是这种方法取 module 中的 数据(class)的话,必须保存 loadInfo ,然后由loadInfo
中的Application 域来获取 class。
b、加载到当前应用域的话,即想在取 module 数据(class)的时候,不需用加载时候保存的loadInfo,通过
Application.currentDomain 即可取 数据。切记,这个时候要声明 LoaderContext 的 安全域 为 当前安全域,
即 context.securityDomain = SecurityDomain.currentDomain;,因为涉及到了当前安全域的授权性,所以
B域下 要 为 A域 做 crossdomain 授权。
到此对应用程序的 安全域 和 应用程序域有了比较深刻的了解。
安全域 可以理解成和网站域名相对应的一个域,只要域之间涉及到 跨域操作,无论 图片,swf,还是视频
都要在 crossdomain 中 声明。
adobe 官方对 crossdomain 的解释是:
所以只要设计到安全域的问题 都要在 crossdomain 声明。
在安全域的前提下,swf 又有额外的授权限制,只module.swf 通过Security.allowDomain 对 A域授权了,
A才能访问 module 中的数据,同理,main 也可对 module 授权。
另外
Security.sandboxType 安全沙箱 应该是安全域父类,因为安全域的概念只是在
remote
(Security.REMOTE
)下才有意义。
在安全域下面又有 应用程序域,可以理解成在一个网站下面 有 很多 程序,这些程序有些是继承关系,有些是共享关系,
有些是封闭关系,有产生了 子域加载,同域加载,和新域加载。
另外安全沙箱 的 全部类型:
-
remote
(Security.REMOTE
):此文件来自 Internet
URL,并在基于域的沙箱规则下运行。
-
localWithFile
(Security.LOCAL_WITH_FILE
):此文件是本地文件,尚未受到用户信任,且不是使用网络名称进行发布的 SWF
文件。此 文件可以从本地数据源读取数据,但不能与 Internet 进行通信。
-
localWithNetwork
(Security.LOCAL_WITH_NETWORK
):此
SWF 文件是本地文件,尚未受到用户信任,且已使用网络名称进行发布。此 SWF 文件可与 Internet 通信,但不能从本地数据源读取数据。
-
localTrusted
(Security.LOCAL_TRUSTED
):此文件是本地文件,并且用户已经使用 Flash Player“设置管理器”或
FlashPlayerTrust 配置文件将其设置为受信任的文件。此 文件既可以从本地数据源读取数据,也可以与 Internet 进行通信。
-
application
(Security.APPLICATION
):此文件在 AIR
应用程序中运行,并且随该应用程序的包(AIR 文件)一起安装。默认情况下,AIR 应用程序沙箱中的文件可以跨脚本访问任何域中的任何文件(尽管不允许 AIR
应用程序沙箱以外的文件跨脚本访问 AIR 文件)。默认情况下,AIR 应用程序沙箱中的文件可以加载任何域中的内容和数据。
未完待续。。。。。
分享到:
相关推荐
总结,Flash 跨域策略文件 crossdomain.xml 是控制 Flash 应用程序跨域访问的关键。正确配置 crossdomain.xml 可以确保数据的安全传输,防止恶意跨域攻击。然而,配置不当可能导致敏感信息泄露或被利用,因此在设置...
`crossdomain.xml`文件是Adobe Flex应用程序用于定义安全策略的一个关键组件,它允许来自不同源的Flash Player或Flex客户端与服务器进行通信。本篇文章将深入探讨如何在WebLogic环境中设置这个文件,以及它对跨域...
总的来说,Flash Flex与JavaScript通信是Web开发中一个复杂且有趣的主题,它涉及到多种技术和策略,而crossdomain.xml则是保证安全通信的重要环节。了解和掌握这些知识,可以帮助开发者创建更具互动性和功能性的Web...
在IT行业中,跨域安全是Web开发中的一个重要概念,...总之,`crossdomain.xml`是解决跨域安全问题的关键工具,特别是在Flex与GIS服务交互的场景中。理解和正确使用这个文件是提升用户体验和保障数据安全的重要一环。
`crossdomain.xml`文件是Flash Player和某些其他支持XML跨域策略的客户端所遵循的安全政策文件。它的主要目的是放宽浏览器的同源策略,允许来自不同源的请求访问特定服务器上的资源。在Azure Blob存储中,你可以将`...
无论是哪种方案,都需要在服务器端 Web 应用的根目录下配置 crossdomain.xml。 使用服务器端代理,可以简单在服务器端定义 DefaultHTTP,打开 proxy-config.xml,如下配置。其中*号表示 ...
Flash安全涉及多个方面,其中最重要的是跨域通信的管理,主要通过`crossdomain.xml`文件进行控制。这个文件是Flash应用程序进行跨域访问时的权限配置文件,它定义了哪些域的Flash内容可以访问和交互数据。以下是关于...
在本例中,当***域下的Flash应用需要访问***域下的资源时,我们可以在***的根目录下添加一个crossdomain.xml文件,并设置其内容如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <cross-domain-policy> ...
开发者需要根据自己的应用需求正确配置`crossdomain.xml`文件,以允许或限制不同域的访问权限,同时保持用户数据的安全。在实际开发过程中,需要密切关注Flash Player的更新,以确保代码与最新安全策略兼容。
4. **使用Flex SDK工具**:可以利用Flex SDK中的工具来帮助诊断和解决跨域问题,例如使用`mx.managers.SecurityManager.checkPolicyFile()`函数检查crossdomain.xml文件的有效性。 5. **调试模式**:启用Flash ...
当使用ArcGIS API for Flex进行跨域请求时,比如获取地图服务、图层或地理编码数据,Flash Player的安全策略会阻止这些操作,除非服务器返回一个合适的Cross-Origin Resource Sharing (CORS)头或者一个crossdomain....
在实际开发中,确保843端口的开放和正确配置`crossdomain.xml`是使用XMLSocket和Flash Player进行跨域通信的关键步骤。这需要开发者对网络安全有深入理解,合理设定策略以平衡功能性和安全性。同时,Python程序员还...
为了允许不同安全域的内容进行通信,可以使用`Security.allowDomain()`方法或`crossdomain.xml`文件。这两种方法都可以实现跨域数据传输,但具体实现方式有所不同。 ##### 1.5 合并安全域 在某些情况下,可能需要...
《主策略文件crossdomain.xml .txt》和《flash跨域策略文件crossdomain.xml配置详解.txt》是关于如何配置和理解`crossdomain.xml`文件的资料。这个文件可以设置在服务器根目录下,以允许特定域的Flash内容访问该...
Flex安全沙箱问题是一个在开发基于...总的来说,解决Flex安全沙箱问题需要深入理解沙箱机制、跨域策略和`crossdomain.xml`文件的配置,同时关注服务器端的实现细节,以确保应用程序既能正常运行,又能保障用户的安全。
这通常包括创建或修改`crossdomain.xml`文件,该文件定义了跨域策略,允许Flex应用从其他源获取数据。 5. **Uninstall.bat**:这个文件可能是用于卸载或撤销Flex安全设置的批处理文件。在不需要特定安全配置或者...
在使用SWFUpload时,我们需要配置服务器端的`crossdomain.xml`文件,这是一个XML文件,用于告诉Flash Player哪些域被允许访问服务器资源。 以下是一个简单的`crossdomain.xml`示例: ```xml <?xml version="1.0"?>...
在Tomcat中,虽然主要使用CORS配置,但如果你的应用涉及到Flash内容,也可以设置`crossdomain.xml`。 `crossdomain.xml`的基本结构如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cross-domain-...
跨域访问通常需要使用`crossdomain.xml`策略文件,并在被访问的SWF中使用`Security.allowDomain()`或`Security.allowInsecureDomain()`。双向访问时,双方都需要设置相应的策略。 总结,Flash Player的安全沙箱是...