学习 Flash 中的 ActionScript 2.0 |
|
|
|
| 了解安全性 > 关于与早期 Flash Player 安全模型的兼容性 | |||
由于 Flash Player 7 中的安全功能有所改变,因此在 Flash Player 6 或更低版本中按预期运行的内容在 Flash Player 更高版本中可能不会按照预期运行。例如,在 Flash Player 6 中,驻留在 www.macromedia.com 中的 SWF 文件可以读取 data.macromedia.com 的服务器上的数据;也就是说,Flash Player 6 允许一个域中的 SWF 文件加载类似域中的数据。
在 Flash Player 7 和更高版本中,如果第 6 版(或更低版本)的 SWF 文件试图从驻留在另一个域中的服务器加载数据,并且该服务器未提供允许从该 SWF 文件的域进行读取操作的策略文件,则将出现"Macromedia Flash Player 设置"对话框。该对话框询问用户是允许还是拒绝跨域数据访问。
如果用户单击"允许",则该 SWF 文件可以访问请求的数据;如果用户单击"拒绝",则该 SWF 文件不能访问请求的数据。
如果不想让该对话框出现,应在提供数据的服务器上创建一个安全策略文件。有关更多信息,请参见允许跨域数据加载。
如果没有安全策略文件,则 Flash Player 7 和更高版本将不允许跨域访问。
Flash Player 8 改变了其处理 System.security.allowDomain 的方式。使用任何参数调用 System.security.allowDomain 的 Flash 8 SWF 文件,或其它任何使用通配符 (*) 值的 SWF 文件,允许只访问本身。现在可以对通配符 (*) 值进行支持,例如:System.security.allowDomain("*") and System.security.allowInsecureDomain("*")。如果第 7 版或更低版本的 SWF 文件使用通配符 (*) 之外的参数调用 System.security.allowDomain 或 System.security.allowInsecureDomain,这会影响到进行调用的 SWF 文件域中的所有第 7 版或更早版本的 SWF 文件,和 Flash Player 7 一样。然而,这种调用不会影响进行调用的 SWF 文件域中的任何 Flash Player 8(或更高版本)SWF 文件。这有助于很好地保证 Flash Player 的兼容性。
有关更多信息,请参见关于域、跨域安全性和 SWF 文件、allowDomain(security.allowDomain 方法)和 allowInsecureDomain (security.allowInsecureDomain 方法)。
如果不对计算机进行特定配置,则 Flash Player 8 将不允许本地 SWF 文件与 Internet 通信。假定您有在这些限制生效以前发布的旧内容。如果该内容试图与网络或/和本地文件系统进行通信,则 Flash Player 8 将停止该操作,您必须显式提供使应用程序正常工作的权限。有关更多信息,请参见关于本地文件安全性和 Flash Player。
|
|
|
|