I Love China

技术·人生

技术服务生活
繁體
9月 1st, 2008

[FlashPlayer10]了解FlashPlayer10中安全规则的变化

原文地址:http://www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes.html
在Adobe FlashPlayer的下一个版本中会有多种新的特征和改进,并且会对旧的内容做些更新。其中一些变化是有了更加严格的安全规则,因此,以前开发的内容可能必须做些改变才能在新的更加严格的安全规则下正常运行。另外的变化则是拥有了以前版本不具有的功能,或者是以前被安全规则限制了的功能。

首先看一下下面列出的Flash Player10 beta中的与安全有关的变化,通过它你可以判断一下是否需要更改你现在的内容,以保证它们的功能在下一个版本中能够正常。
下面的变化可能需要改变您现有的文件

安全相关的新特征


策略文件严格性:阶段二
Adobe从Flash Player 9,0,115,0开始制定关于Flash Player和cross-domain策略文件的规则。考虑到这些变化可能会影响众多的站点,所以决定在FlashPlayer的多个版本中完成3个阶段的变化。

Flash Player 9,0,115,0是第一阶段。之后的Flash Player 9,0,124,0是1.5阶段:仅仅是针对Socket的规则。Flash Player10会完成第2阶段包括针对所有其他非Socket的内容(HTTP/HTTPS/FTP)的跨域策略文件。

阶段二将改变策略文件中的meta-policy的默认行为。meta-policy决定了一个域中策略文件的行为,它允许管理员对该域上的所有策略文件进行控制。meta-policy的概念在阶段一 FlashPlayer9,0,115,0中有介绍。对于那个版本的Player,meta-policy使用默认值”all”,意思是允许该域中的所有策略文件保持有效;这样就能与之前的兼容。
在阶段二,Flash Player10 beta,meta-policy的默认值将会从”all”变成”master-only”。它将会允许所有的master 策略文件(保存在域根目录下名字为crossdomain.xml的文件,比如http://example.com/crossdomain.xml)继续有效。但是,存放在其他位置的其他策略文件必须要一个明确的meta-policy才能使它们继续有效。

有何影响?
将可能影响任何访问跨域内容的SWF文件。这个更新将影响所有在Flash Player 10 beta及后续版本中播放的任何版本的SWF文件(也就是说不管你的SWF文件是发布成几的,7也好,8也好,只要是用Flash Player10的播放器播放,就会受到影响)。也会影响AIR中所有非应用程序的的内容(对AIR应用程序内容本身没有影响)。

我应该做什么
阅读这篇文章,Policy file changes in Flash Player 9.

为您的域定义一个meta-policy。尽管你可能只需要使用master策略文件,仍然推荐您明确定义一个meta-policy。可以在master策略文件中设置meta-policy,也可以通过服务器头的形式发送。
如果你要访问不是自己控制的域,那么你需要联系那个域的管理员,让他更新下meta-policy。


Socket连接超时
对于ActionScript Socket和XMLSocket对象,只有在调用connect()方法后经过预定的时间后都会发送一个securityError消息。也就是说,本来很快的securityError事件会等待更多时间才会触发,另一方面,由于网络堵塞,网络繁忙,可能需要更多时间才能连接成功,但是却引发了securityError事件。先前预置的超时时间是20秒,但是借助新提供的API,Socket.timeout和XMLSocket.timeout,可以指定新的超时时间。
有何影响
可能会影响任何使用Socket或XMLSocket类的SWF文件。这个更新将影响所有在Flash Player 10 beta及后续版本中播放的任何版本的SWF文件(也就是说不管你的SWF文件是发布成几的,7也好,8也好,只要是用Flash Player10的播放器播放,就会受到影响)。也会影响AIR中所有非应用程序的的内容(对AIR应用程序内容本身没有影响)。

我应该做什么
开发者应该能分辨出产生SecurityErrorEvent.SECURITY_ERROR事件的真正原因。另外也可以设置明确的超时时间。较长的超时对网络慢的用户更友好些,而较短的超时则对网速快的用户好。

上传和下载(需要用户交互)
在Flash Player 9,ActionScript可以在任何时间执行上传和下载。在Flash Player 10 beta中,FileReference.browse和FileReference.download操作只有在用户交互时才能用ActionScript触发。包括鼠标点击或按下键盘的动作。
有何影响
可能会影响任何使用Filereference.browse 和Filereference.download的SWF文件。这个更新将影响所有在Flash Player 10 beta及后续版本中播放的任何版本的SWF文件(也就是说不管你的SWF文件是发布成几的,7也好,8也好,只要是用Flash Player10的播放器播放,就会受到影响)。也会影响AIR中所有非应用程序的的内容(对AIR应用程序内容本身没有影响)。

我应该做什么

任何在用户交互事件之外的Filereference.browse 和Filereference.download触发的对话框都需要更新。现在只能把它们放到按钮、快捷键或其他能够跟用户交互的事件处理中。

本地保存和下载
开发者将能够允许用户使用标准的系统浏览对话框在正在播放的SWF文件和用户硬盘之间保存或加载数据。之前的版本需要借助服务器才能实现从Flash Player到用户计算机之间的数据传输。现在可以仅仅通过FlashPlayer就可以在客户端完成。
有何影响

这是Flash Player10 beta的新功能。已经开发的内容不会受到影响,但是以后开发时,可以考虑使用这个新功能。
我应该做什么
如果你想使用这个新功能,那么你需要把内容发布成Flash Player 10 beta。
注意:AIR程序中使用Flash Player9已经可以访问文件API了。


受限的全屏键盘输入
当前的Flash Player在全屏状态下是不允许用户输入的。Flash Player 10 beta会有些改变,允许一部分键在全屏下使用。包括Tab,Spacebar,以及(上下左右)箭头。
有何影响
这个更新将影响所有在Flash Player 10 beta及后续版本中播放的任何版本的SWF文件(也就是说不管你的SWF文件是发布成几的,7也好,8也好,只要是用Flash Player10的播放器播放,就会受到影响)。也会影响AIR中所有非应用程序的的内容。
我应该做什么
看起来似乎不会影响已经制作的内容。但是,现在你可以使用新的键盘支持更新你的内容,以和用户在全屏模式下交互。

新的网络协议:RTMFP
RTMFP提供了在Flash Player和Flash Media Server传输时替代RTMP的功能,它是基于UDP传输。RTMFP用于点对点的能力,允许Flash Player实例不依赖服务器直接发布和播放音频视频。在开始建立连接时依然需要Flash Media Server。
有何影响
这是Flash Player10 beta的新功能。现存的内容不会受到影响。但是新的内容可以使用它。
我应该做什么
如果你想使用这个新功能,你应该发布成Flash Player 10beta,并跟支持RTMFP协议的Flash Media Server通信。如果你是网管,你应该熟悉RTMFP的安全问题,直接点对点通信的能力,以及它如何使用UDP,这可能需要更改你的防火墙配置。

随机文章:

Leave a Reply