flash_player_9_security 学习

来源:互联网 发布:linux rm -rf 还原 编辑:程序博客网 时间:2024/06/11 10:32


一 安全 沙盒类型(Security-Sandbox-Types)
   Actionscript 给每个被打开的swf,赋上一个安全状态,叫做安全沙盒类型,安全沙盒类型分为四种,remote,local-with- filesystem,local-with-networking和local-trusted。每种类型都定义了一个不同的规则集合来控制一个swf 外部操作能力。一个安全沙箱 可能禁止的外部操作包括:



  • 本地内容
  • 内容作为数据访问
  • 交叉脚本控制
  • 装载数据
  • 连接一个套接字
  • 发送数据到一个外部的URL
  • 访问用户的的Carmera和MIC
  • ShareObject 
  • 上传或下载由用户选择的文件
  • 和装载swf的容器交互的能力
  • 连接 LocalConnection

 


  • actionscrpt代码可以通过 Security.sandboxType,来获得当前swf的安全沙盒类型。一个swf被赋上的安全状态,由一下几个因素决定:
  • swf被打开的位置,本地或网络
  • swf发布时的设置,flex : -use-network = true|false , Flash authoring Tool: local file access| net access
  • FlashPlayerTrust目录,是否指定它为可信任目录或文件。


  swf 根据其打开的位置决定其安全沙盒类型是 remote 还是local中的一种,如果已有example.swf,在网络上打开如,www.ABC.com/example.swf , 则Security.sandboxType被赋予 remote,若在本地打开,当swf 发布为 -use-network = true 或 net access 时,若如果没有 FlashPlayerTrust 指定则为 local-with-networking,如果有,则为local-trusted。 当发布为 -use-network = false或 local file access 若如果没有 FlashPlayerTrust 指定则为local-with-filesystem,如果有则为ocal-trusted。

  安全沙箱对swf的操作限制,主要表现为,内容装载、内容作为数据访问、交叉脚本控制和数据装载。
      内容装载,意味着取得外部资源,然后显示 它。actionscript :Loader.load(),Sound.load(),NetStream.play()。
      内容作为数据访问,读取资源的内部信息。actionscript:Loader实例变量的content访问图片 、BiamapData.draw()、SoundMixer.computeSpectrum、访问 Sound实例
      变量的id3。
      交叉脚本控制,actionscript:Loader实例变量的content取得被转载的swf、访问被装载的swf的变量、方法、类、BiamapData.draw()被装载的swf到BitamapData对象 。
      数据装载,actionscript:UrlLoader.load() 文本、二进制、变量;URLString。Loaded()

   remote沙盒
   操作             本地范围    来自swf原始区域的远程资源  来自swf非原始区域的远程资源
   内容装载          禁止               允许                      允许
   内容作为数据访问   禁止               允许                      需要授权
   交叉脚本控制      禁止               允许                      需要授权
   数据装载         禁止               允许                      需要授权

   local-with-filesystem沙盒
   操作             本地范围的非swf资源  本地local-with-filesystem swf资源  本地local-with-networking资源  本地local-trusted swf资源  remote资源
   内容装载          允许                         允许                              禁止                         允许                 禁止
   内容作为数据访问   允许                         n/a                               n/a                         n/a                  禁止
   交叉脚本控制      n/a                          允许                              禁止                         需要授权              禁止
   数据装载         允许                          n/a                              n/a                          n/a                  禁止

   local-with-networking沙盒
   操作             本地范围的非swf资源  本地local-with-filesystem swf资源  本地local-with-networking资源  本地local-trusted swf资源  remote资源
   内容装载          允许                         禁止                              允许                          允许                 允许 
   内容作为数据访问   禁止                         n/a                               n/a                         n/a                  需要授权 
   交叉脚本控制      n/a                          禁止                              允许                          需要授权              需要授权 
   数据装载         禁止                          n/a                              n/a                          n/a                  需要授权 

   local-trusted沙盒
   操作             本地范围的非swf资源  本地local-with-filesystem swf资源  本地local-with-networking资源  本地local-trusted swf资源  remote资源
   内容装载          允许                         允许                              允许                          允许                 允许 
   内容作为数据访问   允许                         n/a                               n/a                         n/a                  允许 
   交叉脚本控制      n/a                          允许                              允许                          允许                 允许
   数据装载         允许                          n/a                              n/a                          n/a                  允许


二 权限控制
   Flash Player 客户端运行时安全模型是围绕 swf 文件、本地数据和Internet URL,等这些资源而设置成的模型,“资源持有者”stakeholders 是指拥有或使用这些资源的各方。资源持有者可以对自己的资源进行安全设置。各种资源持有者被分为四个类型。

   Administrative user =》 User => Website Manager => Developer
   管理用户控制,mms.cfg 和 设置 Flash Player 信任 目录。mms.cfg www.adobe.com/go/fp9_admin 。
   用户控制,设置UI、设置用户Flashplayer 信任目录
   web 站点控制,跨域策略文件 crossdomain.xml
   开发人员控制,Security。allowDomain()

原创粉丝点击