前几天公开的 Flash Player 9.0.115.0 的安全策略发生了一些变化,有可能导致安装了新的 Player 后无法正确显示某些内容。
这次变更主要有以下3点:
安全策略文件的格式
如果安全策略文件的格式不是正确的 XML,将会被忽视。比如顶级标签必须为 <cross-domain-policy>
。
Adobe 已经公开了每个协议的安全策略文件的正确的格式,详细请查看以下的 xsd(XML Schema) 文件。
- http://www.adobe.com/xml/schemas/PolicyFile.xsd
- http://www.adobe.com/xml/schemas/PolicyFileFtp.xsd
- http://www.adobe.com/xml/schemas/PolicyFileHttp.xsd
- http://www.adobe.com/xml/schemas/PolicyFileHttps.xsd
- http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd
Flash Player 9.0.115.0 的 Debug 版添加了安全策略文件的历史记录功能,如果有问题可以查看历史记录。
在域名内的重定向
在请求安全策略文件时,如果发生了在域名内的重定向,Flash Player 9.0.115.0 将对重定向后的 URL 使用安全策略。
比如请求 http://example.com/foo/crossdomain.xml 时,如果重定向为 http://example.com/bar/crossdomain.xml,读入的安全策略文件将会对 http://example.com/bar/ 以下的 URL 生效。
这个信息也会写到历史文件里。
Content-type 的值
Flash Player 9.0.115.0 以后,读入的安全策略文件如果不包含以下任意的值的话,将会被忽视。
text/*
application/xml
application/xhtml+xml
这样多少可以保证安全策略文件为文字文件。
Socket的连接
从 Flash Player 9.0.115.0 开始,不管是否在同一个域名,ActionScript 连接Socket 时都必须使用安全策略文件。
但实际上 Flash Player 9.0.115.0 在大多数的情况下只是弹出警告,是可以连接的。但连接本地服务器等时必须按照新的规则来制定安全策略文件。
历史文件
首先需要安装新的 Debug 版的 Player。(下载:Flash Player Support Center)
再编辑 mm.cfg 文件(在用户的根目录,如果没有,就创建一个),追加一下2句。
PolicyFileLog=1 # 启用安全策略文件的历史记录 PolicyFileLogAppend=1 # 是否为追加模式,默认为0即不(可要可不要)
启动 Flash Player 9.0.115.0 后将会在以下的地方做成叫 policyfiles.txt 的历史文件。
- Windows --------- C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs
- Windows Vista -- C:\Users\username\AppData\Roaming\Macromedia\Flash Player\Logs
- Macintosh -------- /Users/username/Library/Preferences/Macromedia/Flash Player/Logs
- Linux -------------- /home/username/.macromedia/Flash_Player/Logs
关于本次变更的详细情况可以参照Security changes in Flash Player 9(e文)
没有评论:
发表评论