管理 Flash Player 安全性
* 使用跨域策略文件
* 设置访问远程数据的代理
* 设置 Flash Builder 以使用代理访问远程数据
如果没有授予应用程序显式权限,则 Flash Player 不允许应用程序从未加载它的域以外的域接收数据。如果从 http://mydomain.com 加载应用程序 SWF 文件,则应用程序无法从 http://yourdomain.com 加载数据。此安全性沙箱可防止对 Flash Player 功能的恶意使用。(JavaScript 使用相似的安全性模型防止对 JavaScript 的恶意使用。)
要从 Flex 应用程序访问数据,可以使用以下三种方法:
将跨域策略文件添加到承载数据服务的服务器的根目录。请参阅使用跨域策略文件。将应用程序 SWF 文件置于承载数据服务的服务器上。在包含应用程序 SWF 文件的服务器上,创建用来调用位于另一服务器上的数据服务的代理。请参阅设置 Flash Builder 以使用代理访问远程数据。使用跨域策略文件跨域策略文件是一种简单的 XML 文件,用于为 Flash Player 提供从应用程序所在域之外的域访问数据的权限。如果没有该策略文件,会通过对话框提示用户获得访问权限。您希望避免此情况出现。
跨域策略文件(名为 crossdomain.xml)位于包含要访问的数据的服务器(或多个服务器)的根目录中。以下示例显示了跨域策略文件:
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="www.yourdomain.com" /> </cross-domain-policy>有关配置跨域策略文件的更多信息,请参阅下列技术说明:http://www.adobe.com/go/tn_14213_cn。
设置访问远程数据的代理除使用跨域策略文件外,管理 Flash Player 安全性还可以使用代理。LiveCycle Data Services ES 为 Flex 应用程序提供了完整的代理管理系统。此外,还可以使用 ColdFusion、JSP、PHP 或 ASP 等 Web 脚本语言创建简单的代理服务。
代理服务处理从应用程序到远程服务的请求和从远程服务返回应用程序 (Flash Player) 的响应。
开发应用程序时,通常都会用到在本地计算机上承载代理这一技术。为此,需要在本地开发计算机上运行 Web 服务器和脚本语言。有关创建代理的更多信息,请参阅下列技术注意事项:http://www.adobe.com/go/tn_16520_cn。
设置 Flash Builder 以使用代理访问远程数据为通过远程服务访问数据而设置代理后,将应用程序文件添加到代理所在的域中。在 Flash Builder 中,可以修改项目构建设置和启动配置,以管理代理的使用。
如果使用 Flash Builder 编译应用程序,并且本地开发计算机中也设置了代理服务器,则可以修改项目构建设置,以便自动将编译的应用程序文件复制到 Web 服务器中的相应位置。
修改项目构建路径在 Flex 包资源管理器中,选择一个项目。右键单击并选择“属性”。此时将显示“项目属性”对话框。选择“Flex 构建路径”属性页。输入新路径或浏览到 Web 服务器中的相应文件夹(如 C:\inetpub\wwwroot\myApp\),更改现有的输出文件夹。单击“确定”。要从 Web 服务器运行和调试应用程序,请修改项目的启动配置。
注: 如果代理服务器不是本地计算机,请先将 bin 目录的内容复制到服务器,然后再运行或调试程序。修改启动配置在 Flash Builder 中打开项目的主应用程序文件后,在编辑器中右键单击并选择“运行方式”>“打开运行对话框”。随即将出现“创建、管理和运行配置”对话框。在配置列表中,选择项目的启动配置。(可选)在“主菜单”选项卡上,取消选择“使用默认设置”选项以修改启动的 URL 或路径。在“调试”文本框中,输入应用程序的调试版本的 URL 或路径。在“概要分析”文本框中,输入应用程序的概要分析器版本的 URL 或路径。在“运行”文本框中,输入主应用程序文件的 URL 或路径。单击“应用”,然后单击“关闭”。

浙公网安备 33010602011771号