Posts Tagged ‘cross-domain-policy’

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越来越成熟了。

对flash数据请求的支持

星期五, 9月 12th, 2008

当一个swf需要跨域获取在另一个域上的数据的时候,另一个域需要在其根目录底下放一个crossdomain.xml来表达其所支持的数据申请。

先来看看xiaonei.com的:

http://www.xiaonei.com/crossdomain.xml

<!– http://www.xiaonei.com/ –>

<cross-domain-policy>
<allow-access-from domain=”*.xiaonei.com”/>
<allow-access-from domain=”xiaonei.com”/>
</cross-domain-policy>

这是很标准的做法,我就让我自己的域以及我的子域来获取数据。

淘宝的:

http://www.taobao.com/crossdomain.xml

<cross-domain-policy>
<allow-access-from domain=”*.taobao.com”/>
<allow-access-from domain=”*.taobao.net”/>
<allow-access-from domain=”*.taobaocdn.com”/>
<allow-access-from domain=”*.allyes.com”/>
</cross-domain-policy>

红色的一行是淘宝的CDN所在的域,所谓内容分发网络。

绿色的一行是淘宝的广告商了,http://www.allyes.com/好耶广告网络,只是不清楚是不是仍然再卖淘宝的广告?

多看几个大网站的crossdomain.xml,也可以知道可能是什么网络广告商给它们在打广告。

比如彭博:http://www.bloomberg.com/crossdomain.xml

<cross-domain-policy>
<allow-access-from domain=”localhost”/>
<allow-access-from domain=”10.16.136.107″/>
<allow-access-from domain=”*.bloomberg.com”/>
<allow-access-from domain=”*.pointroll.com”/>
<allow-access-from domain=”*.pointroll.net”/>

</cross-domain-policy>

红色的就太不专业了,把内部IP都给暴露了。。。。。。

绿色的是彭博的广告商:PointRoll

路透的:

http://www.reuters.com/crossdomain.xml

<cross-domain-policy>
<allow-access-from domain=”*.reuters.com” secure=”false”/>
<allow-access-from domain=”ad.doubleclick.net” secure=”false”/>
<allow-access-from domain=”ad.uk.doubleclick.net” secure=”false”/>

<allow-access-from domain=”m.2mdn.net” secure=”false”/>
<allow-access-from domain=”m2.2mdn.net” secure=”false”/>

</cross-domain-policy>

广告给了doubleclick来做(绿色)

2mdn.net看不懂是干嘛的,大概是个cdn吧。

滥情的facebook:

http://www.facebook.com/crossdomain.xml

<?xml version=”1.0″?>
<!DOCTYPE cross-domain-policy SYSTEM “http://www.adobe.com/xml/dtds/cross-domain-policy.dtd”>
<cross-domain-policy>
<site-control permitted-cross-domain-policies=”master-only” />
<allow-access-from domain=”s-static.facebook.com” />
<allow-access-from domain=”static.facebook.com” />
<allow-access-from domain=”static.api.ak.facebook.com” />
<allow-access-from domain=”*.static.ak.facebook.com” />
<allow-access-from domain=”s-static.thefacebook.com” />
<allow-access-from domain=”static.thefacebook.com” />
<allow-access-from domain=”static.api.ak.thefacebook.com” />
<allow-access-from domain=”*.static.ak.thefacebook.com” />
<allow-access-from domain=”*.static.ak.fbcdn.com” />
<allow-access-from domain=”external.ak.fbcdn.com” />
<allow-access-from domain=”*.static.ak.fbcdn.net” />
<allow-access-from domain=”external.ak.fbcdn.net” />
<allow-access-from domain=”www.facebook.com” />
<allow-access-from domain=”www.new.facebook.com” />
<allow-access-from domain=”register.facebook.com” />
<allow-access-from domain=”login.facebook.com” />
<allow-access-from domain=”ssl.facebook.com” />
<allow-access-from domain=”secure.facebook.com” />
</cross-domain-policy>

这么多!有子域,有CDN,有thefacebook(facebook的旧域名吧?)

还是google的专业:

<?xml version=”1.0″?>
<!DOCTYPE cross-domain-policy SYSTEM “http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd”>
<cross-domain-policy>
<site-control permitted-cross-domain-policies=”by-content-type” />
</cross-domain-policy>

蓝色行的意思是,要符合要求的文件你才能取,不管你是哪来的flash数据请求。符合要求的文档必须满足:Content-Type: text/x-cross-domain-policy

有关crossdomain.xml的请参考Adobe的开发者中心