在 Adobe 上公布了将在4月份改变 FLash Player 9 的安全策略。(Preparing for the Flash Player 9 April 2008 Security Update)
这次的改变纯粹是为了安全,没有增加任何的新特性。但是默认的策略发生了一些改变,有可能会导致现有的一些程序无法正确地工作。
javascript 协议的改变
在以前,loadMovie()
里可以使用 javascript:...
的形式,但新的版本里只在 getURL()
、navigateToURL()
和 ExternalInterface
里支持 JavaScript。
allowScriptAcces的变化
allowScriptAccess
是指定从 swf 访问 HTML 里的 Script 的方式的属性。以前的 Flash player 对于版本7以下的 swf 的 allowScriptAccess
属性的默认值为 always
,版本8以上的默认值为 sameDomain
。
但新的版本对所有的版本的 swf 的默认值都将变为 sameDomain
。版本7以下的 swf 必须明确地指定 allowScriptAccess = always
。
传送 HTTP Header 时的变化
使用 XML.addRequestHeader()
、LoadVars.addRequestHeader()
、URLRequest.requestHeaders
可以添加 HTTP 请求的 Header。在新的版本里向非同域名的服务器发送请求并添加 Header 时先必须要取得服务器的的许可。
具体的是需要在服务器上的 crossdomain.xml
添加添加以下项目:
<allow-http-request-headers-from domain="www.example.com" headers="HeaderName"/>
Socket 连接服务器时必须使用安全策略文件
XMLSocket 与 Socket 连接服务器的安全策略将会更严。新的版本在连接同域名时也需要使用安全策略文件,并且请求安全策略文件的端口固定为843。