`

关于Flex安全沙箱类型及控制方式

    博客分类:
  • Flex
阅读更多

http://developer.51cto.com/art/201008/218294.htm

Flex安全沙箱包括:远程沙箱与本地沙箱。其实这个沙箱模型类似与浏览器中的同源策略。在同一域内的资源会被放到一个安全组下,这个安全组就被称为Flex安全沙箱了。

Flex安全沙箱

Flex安全沙箱包括:远程沙箱与本地沙箱。其实这个沙箱模型类似与浏览器中的同源策略。在同一域内的资源会被放到一个安全组下,这个安全组就被称为Flex安全沙箱了。

在深入了解沙箱之前先得明确FlashPlayer的权限控制(我还是按照FlashCS3上的中文官方文档的名词来划分吧):

1、管理用户控制:

这指系统的最高权限用户,win下的Administrator,linux下的root等。有两种类型的控制:

a)、mms.cfg文件:数据加载、隐私控制、FlashPlayer更新、旧版文件支持、本地文件安全性、全屏模式等。

b)、"全局FlashPlayer信任"目录:当某些SWF文件被指定到这个受信任的目录下时,这些SWF文件会被分配到受信任的本地沙箱。它们 可以与任何其它SWF文件进行交互,也可以从任意位置(远程或本地)加载数据。该信任目录的默认路径为:C:\windows\system32 \Macromed\Flash\FlashPlayerTrust。

2、用户控制:

相对于第1种,这里的用户是指普通用户。有这三种类型的控制:

a)、摄像头与麦克风设置:还记得ClickJacking的那个FlashDEMO么?

b)、共享对象存储设置:就是那个SharedObject了。

c)、相对与"全局FlashPlayer信任"目录,用户权限这也有个"用户FlashPlayer信任"目录。默认路 径:C:\DocumentsandSettings\JohnD\ApplicationData\Macromedia\FlashPlayer \#Security\FlashPlayerTrust。

3、Web站点控制(跨域策略文件):

就是家喻户晓的crossdomain.xml文件了,现在的安全策略是该文件只能存放在站点根目录下了,文件格式如:

  1. <? xmlversion xmlversion = "1.0" ?>  
  2.  
  3. < cross-domain-policy >  
  4.  
  5. < allow-access-fromdomain allow-access-fromdomain = "*" />  
  6.  
  7. </ cross-domain-policy >  

随便看个例子:http://fanfou.com/crossdomain.xml。通过该文件的配置可以提供允许的域跨域访问本域上内容的权限。

4、作者(开发人员)控制:

开发者可以通过编码(在AS脚本中)指定允许的安全控制权限,如:Security.allowDomain("www.xeye.us");

当然都支持通配符*了。这个通配符真是个瘟神,程序员可得谨慎使用,以免添加不必要的安全风险。

好,FlashPlayer的权限控制明了之后,现在可以来看看Flex安全沙箱了。

1、远程沙箱:

这个远程沙箱控制着远程域上,浏览器环境中的安全策略,比如http://xeye.us/域中的Flash文件就无法单刀直入地与http: //hi.baidu.com/ycosxhack域上的Flash文件交互。同一个域(严格域)下的所有文件属于一个沙箱,沙箱内的对象是可以互相返 回,而沙箱之间的对象需要交互的话,得靠上面介绍的权限控制的“Web站点控制(跨域策略文件)”与“作者(开发人员)控制”进行了。

2、本地沙箱:

再来看一下Flex安全沙箱中的本地沙箱,Flash与Flex文件可以在我们的桌面环境下运行。如果没有个很好的安全策略来限制这些功能不弱的AS脚本的话,那绝对是很危险的事。

它有三种类型:

a)、只能与本地文件系统内容交互的本地沙箱:顾名思义,就是该Flash文件在本地运行时是不能与网络上的对象进行通信的,而只能与本地对象进行交互。

b)、只能与远程内容交互的本地沙箱:还是顾名思义,此时的Flash文件要与远程域对象交互时,需在远程域上通过策略文件或以Security.allowDomain编码方式来设置访问策略(同远程沙箱)。此时不能访问本地文件。

c)、受信任的本地沙箱:完美了,上面介绍的权限控制中,管理用户与普通用户都有FlashPlayer信任目录的控制权限,只要将我们的SWF文件放到受信任目录内运行,那么这个Flash文件就可以与本地域和远程域通信了:)。

当然以上这些沙箱类型,我们可以通过编码来确定当前运行的Flash文件被分配到什么类型的沙箱中。还是通过Security类:Security.sandboxType,值:

Security.REMOTE(远程沙箱)

Security.LOCAL_WITH_FILE(只能与本地文件系统内容交互的本地沙箱)

Security.LOCAL_WITH_NETWORK(只能与远程内容交互的本地沙箱)

Security.LOCAL_TRUSTED(受信任的本地沙箱)

恩,Flash安全沙箱就是这些笔记了,写到这还不得不提下Flash的一些其他安全问题。这些安全问题大多围绕安全沙箱进行。

在我们发布Flash时生成的HTML文件内,<object>与<embed>标签内的几个属性需要明确的。

◆allowNetworking:

该参数控制Flash文件的网络访问功能。有三个值:all(所有的网络API都可用)、internal(除了不能使用浏览器导航和浏览器交互的API外,其它的都可用)、none(所以网络API都不可用)。

◆allowScriptAccess:

这是AS与JS通信的安全控制,还记得ExternalInterface的作用吗。有三个值:never(ExternalInterface的 call方法不能与HTML的JS脚本进行通信)、sameDomain(同域内就可以了,这是默认值)、always(这个就允许所有域了,比较危 险)。

◆allowFullScreen:

全屏模式的安全问题,这是一个boolean值,默认为false,不允许Flash全屏。全屏带来的安全问题莫非是用户界面欺骗这样的类型?我不是很清楚。

上面这三个属性得区分好了啊。安全问题不仅这点,还有比如LocalConnetion的本地通信、共享对象SharedObject的使用、 E4X在AS中的使用、其它的Socket通信、一些网络API,比如全局的navigateToURL、Flash与其它非Flash的外部对象的通信 问题等等。这些安全问题大都围绕安全沙箱进行。Flash或者Flex文件可以做得很漂亮,很精彩,比如那些非常优秀的Flash动画与游戏,然而一定得 时刻保持警惕。

 

 

http://developer.51cto.com/art/201007/215031.htm

方法一:

在目标服务器上布署crossdomain.xml文件(我用的此方法很管用,放上就没问题了)需要远程服务根目录定义有crossdomain.xml文件,如下:

<?xmlversion="1.0"encoding="UTF-8"?><cross-domain-policy><allow-access-fromdomain="*"/></cross-domain-policy>

方法二:

使用代理,把Flex要访问的远程文件通过asp,php,jsp等脚本读取到本地,然后再由Flex去访问;

方法三:

解决Flex安全沙箱第五种方法是使用Adobeflashplayer9打开程序后,点击菜单栏中文件->创建播放器...即生成exe文件,运行exe文件即可突破安全限制;

方法四:

1、找到这个文件夹:c:\DocumentsandSettings\<UserName>\ApplicationData\Macromedia\FlashPlayer\#Security

2、在其下建立一个名为"FlashPlayerTrust"的文件夹

3、在"FlashPlayerTrust"文件夹下新建一TXT文件,内容如下:c:\d:\e:\f:\

4、将该txt文件命名为:"myTrustFiles.cfg"再打开你硬盘里的SWF文件,就不会出现那个烦人的安全设置提示窗口了!

方法五:

解决Flex安全沙箱第五种方法是用HttpService它默认是有Proxy的,需要配置flex-config.xml,里面有一 段:<http-service- proxy><whitelist>………………</whitelist></http-service-proxy>

这个是白名单,一般情况下是注释掉的,也就是默认只有本地的http://{localserver}/*和https://{localserver}/*可以访问。其他的需要在flex-config.xml里的自行修改成需要的就可以了。

访问本地自然不会跨域,不过你肯定访问局域网其他机器了,所以是依照白名单规则,属于跨域

分享到:
评论

相关推荐

    FLEX安全沙箱实用指南

    #### 三、FLEX安全沙箱中的资源类型及操作 FLEX安全沙箱机制针对不同类型的资源定义了不同的访问规则。以下是一些常见的资源类型及其操作: - **图形图片格式**:包括JPG、PNG、GIF等格式的图像文件,可以通过`...

    全面认识Flex安全沙箱

    在理解Flex安全沙箱时,还需要考虑FlashPlayer的权限控制,它由四个层次组成: - **管理用户控制**:系统管理员可以通过mms.cfg文件和全局FlashPlayer信任目录来设定全局安全策略。 - **用户控制**:普通用户可以...

    flex 开发实例 用于flex 沙箱的控制

    在这个“Flex开发实例 用于Flex沙箱的控制”中,我们将深入探讨如何利用Flex技术来管理和控制沙箱环境,以确保在富客户端中的安全运行。 Flex沙箱是Flex应用程序运行时的一个核心组件,它模仿了Adobe Flash Player...

    源于FLEX中的安全沙箱问题

    【标题】:“源于FLEX中的安全沙箱问题” 【描述】:在FLASH PLAYER中,安全沙箱是一个关键的安全性组件,它将资源逻辑地分组,以限制各个FLASH应用程序能够执行的操作和访问的资源。安全沙箱确保了各应用程序与...

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

    安全沙箱主要有三种类型:本地沙箱、浏览器沙箱和网络沙箱。 1. **本地沙箱**:本地沙箱允许运行本地文件系统上的Flash内容,但限制了与网络和系统资源的交互。这防止了恶意代码对用户电脑的潜在危害。 2. **...

    Flex控制swf简单源码

    此外,为了确保安全性和性能,Flex和SWF之间的通信可能会受到沙箱限制。通常,加载的SWF文件会位于不同的安全域中,这可能会影响它们之间的交互。因此,你可能需要设置`LoaderContext`来允许跨域通信,或者在SWF头部...

    flex 4 help

    Flex提供了多种机制来确保应用程序的安全,包括沙箱策略、网络连接控制等。 - **模块化应用程序**:通过将应用程序划分为多个可独立开发和部署的模块,可以提高开发效率和灵活性。Flex支持模块化设计,允许开发者...

    flex调用swf——swf可以转成具体的对象,而非MovieClip

    对于SWF的加载和类型转换,还需要注意安全限制,比如沙箱模型和访问权限,以确保程序的正常运行。 总之,通过正确的ActionScript编程和项目配置,我们可以将外部SWF资源作为具体对象在Flex应用中使用,从而极大地...

    flex自定义加载器

    Flex加载资源时需要考虑安全策略。Flash Player使用沙箱模型来限制不同域之间的交互。在创建自定义加载器时,要确保遵守这些规则,例如使用`Security.loadPolicyFile()`来允许跨域加载。 4. **数据解码与转换** ...

    AIR性能和安全

    **Flex安全性**: - **数据加密**:对敏感数据进行加密处理,保护用户隐私。 - **输入验证**:对用户输入进行严格的验证,防止SQL注入等攻击。 - **API权限控制**:限制API接口的访问权限,防止未授权的访问和数据...

    arcgis_api_for_flex入门教程

    5. **安全性增强**:RIA的沙箱环境提供了额外的安全保障,防止恶意代码执行。 ##### RIA局限性 尽管RIA拥有众多优点,但也存在一些局限性,如客户端引擎的下载和安装可能对初次使用造成不便,以及目前在搜索引擎...

    ArcGIS RIA开发实践【背景篇】【Flex篇】

    5. **沙箱提供更可靠的安全性**:RIA技术通常会在一个安全的环境中运行,限制了恶意代码执行的可能性。 6. **易于与现有系统集成**:RIA技术可以通过标准协议与现有的企业系统无缝集成。 ##### RIA的局限性 1. **...

    AS 3.0中文帮助文档

    它分为三个沙箱:本地、网络和安全沙箱,每个都有不同的权限。 11. 异步编程:使用Promise和Future概念,AS3.0支持非阻塞I/O操作,使得处理大型数据或网络请求时不会阻塞应用程序的其他部分。 12. Flash ...

    ActionScript开发人员指南中文版

    跨脚本访问不同安全沙箱中的内容 第章:为AIRHTML容器编写脚本 HTMLLoader对象的显示属性 滚动HTML内容 访问HTML历史记录列表 设置在加载HTML内容时使用的用户代理 设置用于HTML内容的字符编码 为HTML内容定义类似于...

    ActionScript开发技术大全

    25.1.2安全沙箱模型 541 25.2系统管理员管控 543 25.2.1使用mms.cfg配置文件 543 25.2.2全局信任目录管控 548 25.3用户管控 548 25.3.1使用FlashPlayer设置对话框 549 22.3.2使用全局设置管理器 550 25.3.3用户受...

    AIR bible AIR 宝典

    8. **安全性与权限**:介绍AIR的安全模型,包括沙箱限制、证书管理、用户权限控制等方面,确保应用的安全性和隐私保护。 9. **部署与发布**:指导读者如何打包和发布AIR应用,包括签名过程、应用更新机制以及分发...

    as3学习好资料

    - **更强的安全性**:通过沙箱模型和安全策略文件来保护应用程序免受恶意代码攻击。 - **更好的跨平台兼容性**:AS3 可以编写一次并在多个平台上运行,包括桌面和移动设备。 #### 三、ActionScript 3.0 在 Flash 和...

    Flash课件制作教程-加载SWF文件

    5. **安全和沙箱模型**:加载SWF文件时,需要注意Flash的安全模型,包括同一域限制和跨域策略文件。确保被加载的SWF与主文件在同一域或有正确的跨域策略文件,以避免安全错误。 6. **资源管理**:加载的SWF文件作为...

Global site tag (gtag.js) - Google Analytics