预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第28章Flash网络应用程序 沙箱安全和部署 使用Flash开发的网络应用程序必须十分注意应用程序的安全,为此,Flash Player建立了严格的沙箱,该沙箱根据资源的拥有者来限制网络应用程序要加载 的资源,这是最基本的安全原理。 注意,这个沙箱是位于客户端的沙箱,它用于过滤客户端所要执行的资源, 这是一个最基本的理解沙箱的基础。 28.1资源的拥有者 在网络上,每一个资源都有自己的拥有者,拥有这些资源的用户可以对其自 己的资源进行控制(安全设置)。一般来说,每种资源有4个持有者。FlashPlayer 对这些控制严格采用一种权利层次结构,如图28-1所示。 客户端管理员设置 用户设置 网站设置 作者设置 图28-1安全控制层次结构 首先是客户端的管理员,他可以使用“全局FlashPlayer信任”目录来设置 计算机的权限,然后是“用户FlashPlayer信任”目录来设置用户自己的权限。 第28章Flash网络应用程序沙箱安全和部署 如果要加载网站上的资源,则网站管理员会使用策略文件加以限制。最后,要加 载某个SWF文件,则该文件的创作者也可以设置该文件的权限,以定义是否允 许被加载。 28.2安全沙箱 客户端计算机中的FlashPlayer可以从很多来源(如外部Web站点或本地文 件系统)中获取SWF文件。当SWF文件及其他资源(如共享对象、位图、声音、 视频和数据文件)被加载到FlashPlayer中时,FlashPlayer会根据这些文件和资 源的来源单独地将其分配到安全沙箱中。 有两个基本的沙箱类型:远程沙箱和本地沙箱,其中本地沙箱还可以被细分 为3个沙箱类型。 28.2.1远程沙箱 FlashPlayer将来自Internet的资源(包括SWF文件)分类到单独的沙箱中, 这些沙箱与各自Web站点原始域相对应。 默认情况下,对这些文件授予访问其自身所在服务器中任何资源的权限。如 果要访问其他域中的资源,必须获得Web站点的许可(通过“跨域策略文件”) 和创作者的许可(通过Security.allowDomain方法)。 28.2.2本地沙箱 远程SWF文件无法加载任何本地文件或资源,但本地SWF文件却有可能既 能加载本地文件或资源,也能加载来自Internet的资源。 “本地文件”是指通过使用file协议或统一命名约定(UNC)路径引用的任 何文件。本地SWF文件被放置在3个本地沙箱中的一个内。 (1)只能与本地文件系统内容交互的沙箱。出于安全性考虑,FlashPlayer 在默认情况下将所有本地SWF文件和资源放置在只能与本地文件系统内容交 互的沙箱中。通过此沙箱,SWF文件可以读取本地文件(例如通过使用 URLLoader类),但是它们无法以任何方式与网络进行通信。这样,可向用户 保证本地数据不会泄漏到网络或以其他方式不适当地共享。 (2)只能与远程内容交互的沙箱。编译SWF文件时,可以指定该文件作为 本地文件运行时拥有网络访问权限。这些文件放置在只能与远程内容交互的沙箱 中。分配到只能与远程内容交互的沙箱中的SWF文件将失去其本地文件访问权 733 第四篇模块、大规模应用、部署篇 限,但允许这些SWF文件访问网络中的数据。不过,只有通过跨域策略文件或 调用Security.allowDomain()方法来授予操作权限,才允许远程内容交互的SWF 文件读取源自网络的数据。为授予此类权限,跨域策略文件必须向“所有”域授 予权限,方法是使用<allow-access-fromdomain="*"/>或使用Security.allow Domain("*")。 (3)受信任的本地沙箱。注册为受信任(由用户或安装程序注册)的本地 SWF文件放置在受信任的本地沙箱中。系统管理员和用户还可以根据安全注意 事项将本地SWF文件重新分配(移动)到受信任的本地沙箱,或者从该沙箱 中进行重新分配。分配到受信任的本地沙箱的SWF文件可以与其他任何SWF 文件交互,也可以从任何位置(远程或本地)加载数据。 只能与远程内容交互的沙箱和只能与本地文件系统内容交互的沙箱之间的 通信以及只能与本地文件系统内容交互的沙箱和远程沙箱之间的通信是严格禁 止的。Flash应用程序或用户/管理员不能授予允许此类通信的权限。 在本地HTML文件和本地SWF文件之间以任一方向访问脚本(例如使用 ExternalInterface类)均要求涉及的HTML文件和SWF文件应位于受信任的本地 沙箱中。这是因为浏览器的本地安全模型与FlashPlayer本地安全模型不同。 只能与远程内容交互的沙箱中的SWF文件无法加载只能与本地文件系统内 容交互的沙箱中的SWF文件。只能与本地文件系统内容交互的沙箱中的