一直对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 应用程序沙箱中的文件可以加载任何域中的内容和数据。
未完待续。。。。。
分享到:
相关推荐
crossdomain.xml用于unity3d生成的webplayer不能读取数据库的问题,用于unity3d生成的webplayer不能读取数据库的问题
flash跨域访问策略。渗透测试时检查crossdomain.xml配置信息,应当重点检查allow-access-from=*、allow-...特别注意参数为*和all,当站内没有crossdomain.xml时将不允许flash跨域访问。不会导致漏洞
NULL 博文链接:https://baixiaozhe.iteye.com/blog/793452
NULL 博文链接:https://wanller.iteye.com/blog/1106243
虽然目前还没有多少框架,但您需要利用过度宽松的 crossdomain.xml 文件所需的一切都在这里。 支持的操作系统 卡利 操作系统 下载和设置 root@kali:~ # git clone ...
解决tomcat在IP 和端口不同时引起的跨域问题,解决方案,通过编写crossDomain.xml文件
跨域策略文件crossdomain,放至服务器IIS根目录
本程序为绿色mini服务程序 程序会自动打开Flash默认的843端口 自动将crossdomain.xml返回给flash客户端 您可以修改crossdomain.xml中的内容,大小不要超过10K
跨域扫描仪扫描域的crossdomain.xml文件是否存在过期的安全问题。设置pip install -r requirements.txt
如何实现crossdomain.xml文件以允许Flash客户端连接到我的网站
本程序为绿色mini服务程序 程序会自动打开Flash默认的843端 自动将crossdomain.xml返回给flash客户端 您可以修改crossdomain.xml中的内容,大小不要超过10K 有问题可email我
flash跨域crossdomain 设置项使用,直接可用允许全部跨域请求
flex访问地图的时候会遇到安全沙箱问题,引起地图不能访问。这里的crossdomain.xml放在服务器上就可解决这个问题。需要的请下载……
解决springboot技术前后端分离的大文件上传解决问题,前端是静态页面采用web上传组件,QQ联系625516717
Flex跨域问题,对于Flash Player 而言,crossdomain.xml文件内容出现了较大的变化,原因是Flash Player 9的security机制有所改变。所以当我用Flex 3调用cross domain的web service时,还使用上面的crossdomain.xml...
iframe-cross-domain.rar
Cross Domain will help you to deal with cross domain - CORS problem. This is tool helpful when face with cross domain issue.