2024年4月18日发(作者:)

第28章 Flash网络应用程序

沙箱安全和部署

使用Flash开发的网络应用程序必须十分注意应用程序的安全,为此,Flash

Player建立了严格的沙箱,该沙箱根据资源的拥有者来限制网络应用程序要加载

的资源,这是最基本的安全原理。

注意,这个沙箱是位于客户端的沙箱,它用于过滤客户端所要执行的资源,

这是一个最基本的理解沙箱的基础。

28.1 资源的拥有者

在网络上,每一个资源都有自己的拥有者,拥有这些资源的用户可以对其自

己的资源进行控制(安全设置)。一般来说,每种资源有4个持有者。Flash Player

对这些控制严格采用一种权利层次结构,如图28-1所示。

客户端管理员设置

用户设置

网站设置

作者设置

图28-1 安全控制层次结构

首先是客户端的管理员,他可以使用“全局Flash Player信任”目录来设置

计算机的权限,然后是“用户Flash Player信任”目录来设置用户自己的权限。

第28章 Flash网络应用程序沙箱安全和部署

如果要加载网站上的资源,则网站管理员会使用策略文件加以限制。最后,要加

载某个SWF文件,则该文件的创作者也可以设置该文件的权限,以定义是否允

许被加载。

28.2 安全沙箱

客户端计算机中的Flash Player可以从很多来源(如外部Web站点或本地文

件系统)中获取SWF文件。当SWF文件及其他资源(如共享对象、位图、声音、

视频和数据文件)被加载到Flash Player中时,Flash Player会根据这些文件和资

源的来源单独地将其分配到安全沙箱中。

有两个基本的沙箱类型:远程沙箱和本地沙箱,其中本地沙箱还可以被细分

为3个沙箱类型。

28.2.1 远程沙箱

Flash Player将来自Internet的资源(包括SWF文件)分类到单独的沙箱中,

这些沙箱与各自Web站点原始域相对应。

默认情况下,对这些文件授予访问其自身所在服务器中任何资源的权限。如

果要访问其他域中的资源,必须获得Web站点的许可(通过“跨域策略文件”)

和创作者的许可(通过omain方法)。

28.2.2 本地沙箱

远程SWF文件无法加载任何本地文件或资源,但本地SWF文件却有可能既

能加载本地文件或资源,也能加载来自Internet的资源。

“本地文件”是指通过使用file协议或统一命名约定(UNC)路径引用的任

何文件。本地SWF文件被放置在3个本地沙箱中的一个内。

(1)只能与本地文件系统内容交互的沙箱。出于安全性考虑,Flash Player

在默认情况下将所有本地SWF文件和资源放置在只能与本地文件系统内容交

互的沙箱中。通过此沙箱,SWF文件可以读取本地文件(例如通过使用

URLLoader类),但是它们无法以任何方式与网络进行通信。这样,可向用户

保证本地数据不会泄漏到网络或以其他方式不适当地共享。

(2)只能与远程内容交互的沙箱。编译SWF文件时,可以指定该文件作为

本地文件运行时拥有网络访问权限。这些文件放置在只能与远程内容交互的沙箱

中。分配到只能与远程内容交互的沙箱中的SWF文件将失去其本地文件访问权

733