辅助功能*

Flash 文章

 

Flash Player 8 中的安全性更改


Deneb Meketa

Deneb Meketa

Macromedia

目录

出版日期:
12 September 2005
用户级别:
中级

Macromedia 已更改了 Flash Player 8 中应用于本地 Flash 内容的安全模型。默认情况下, 从用户本地文件系统而不是通过 HTTP 运行的 Flash 应用程序在 Flash Player 8 中的权限比在 Flash Player 7 中具有更多限制。该模型适用于所用版本的 Flash 内容, 这意味着除 Flash Player 8 发行之后创建的新内容外, 在此版本之前发布的内容也可能会受到影响。本文描述如何修复因这些更改而导致的大多数问题。

除了更改安全模型外, Flash Player 8 还引入了其它一些限制并添加了一些新的安全功能。本文还描述了那些更改, 但是在 Flash Player 8 中, 本地安全更改是到目前为止最大的安全主题。

注意: 这些本地安全更改不会影响通过 HTTP 提供的 Flash 内容。大多数 Flash 内容都通过 HTTP 提供, 因此不会受到这些更改的影响。

新的限制

下面是有关 Flash 内容可执行功能的最新限制:

  • 本地沙箱: 默认情况下, 本地 SWF 无法再连接 Internet、执行 HTTP 通信或与本地 HTML 文件通信。如果版本 7 或更低版本的 SWF 尝试执行其中任一操作, 用户将会看到一个警告对话框, 通知他们无法执行该操作。最终用户或 Flash 开发人员可以通过设置适当的权限来消除此对话框并解除现有内容中的故障。
  • 加载限制: 来自非本地 URL 的 SWF 和 HTML 内容无法再加载来自本地路径的任何内容 (SWF、HTML、PNG 等)。
  • 第三方存储: Flash Player 用户现在可以阻止第三方 SWF (来自浏览器地址栏中显示的域以外的域 )读取或写入永久共享对象。默认情况下不应用此限制;用户必须主动选择是否应用它。
  • allowScriptAccess 的默认值: 对于版本 8 或更高版本的 SWF, HTML allowScriptAccess 参数的默认值是“sameDomain”而不是“always”。这不影响版本 7 或更低版本的 SWF。allowScriptAccess 参数控制 SWF 是否可以调用 HTML 页中的 JavaScript。

新的安全功能

下面是适用于 Flash 内容的新安全功能 (有关 Flash Player 7 的安全信息, 请参阅 Macromedia Flash Player 7 中的安全性更改*):

通配符 allowDomain: System.security.allowDomain() 现在接受“*”通配符参数, 该参数允许 SWF 从任意域进行访问。

更精确的权限: System.security.allowDomain() 和 System.exactSettings 现在仅适用于调用它们的 SWF, 而不是调用 SWF 的整个域。这仅影响新的 (版本 8+) 内容, 因此保留了向后兼容性。

安全的永久共享对象: 通过 HTTPS 加载的 SWF 现在可以创建 SharedObject 对象, 该对象只能由同样通过 HTTPS 加载的 SWF 访问。这样将反映出浏览器 Cookie 的功能, 并帮助共享对象中存储的数据免遭搜寻和修改的威胁。现有共享对象不受影响。

关于作者

Deneb Meketa 是 Macromedia Flash Player 小组的一位工程师。他刚刚独自完成了一些让您抓狂的安全更改。为此, 他真诚地向您道歉, 而且他保证他因此被折磨得比您至少惨 10 倍。最近, Deneb 正在利用周末在旧金山海湾地区学习滑翔。