Posts Tagged ‘crossdomain.xml’

flashplayer升级和非80端口的security policy

星期日, 1月 4th, 2009

踏入了2009,开始要把XIFF的那一套代码翻出来修改了。

编译没问题,然而一运行,就连不上Openfire,报错误为:

Error #2044: Unhandled SecurityErrorEvent:. text=Error #2048: Security sandbox violation: http://localhost/webim/main.swf cannot load data from [ServerName]:5222.

很明显是安全限制。

于是去查了一下web根目录下的crossdomain.xml,没有问题啊,放松了要求,不行,domain/port都改成*还是不行。

还是google,找回到http://www.igniterealtime.org的社区,里面说法很多,有说改openfire的,有说到adobe上下载一个perl脚本监听843端口的。

看明白了,这个问题的起因是flashplayer升级了,对于各种网络应用,都到其端口下获取安全策略文件,因此,80端口下的并不能用于5222端口,而一个通用的安全策略文件端口是843,因此可以在843上提供安全策略文件。

当然,对于XIFF+Openfire的这种情况,直接在XIFF中增加一句:

Security.loadPolicyFile(”xmlsocket://”+SERVERNAME+”:5229″);就可以了,Openfire默认提供flash安全策略文件的端口在5229。

在客户端flash可以修改的情况下,这个方案是最方便的。

====================================================

Adobe在安全上也是煞费苦心,感觉flashplayer越来越成熟了。