[ActionScript 3.0] AS3 Socket安全沙箱策略文件

 当与一个主机建立一个Socket连接时,Flash Player要遵守如下安全沙箱规则:

 1.Flash的.swf文件和主机必须严格的在同一个域名,只有这样才可以成功建立连接;
 2.一个从网上发布的.swf文件是不可以访问本地服务器的;
 3.本地未通过认证的.swf文件是不可以访问任何网络资源的; 
 4.你想跨域访问或者连接低于1024的端口,必须使用一个跨域策略文件;

        如果尝试连接未认证的域或者低端口服务,这样就违反了安全沙箱策略,同时会产生一个securityError事件。这些情况都可以通过使用一个跨域策略文件解决,无论是Socket对象还是XMLSocket对象的策略文件,都必须在连接之前通过使用 flash.system.Security.loadPolicyFile()方法载入策略文件,方法如下:

Security.loadPolicyFile("http://www.yanzimen.com/crossdomain.xml");

        获得的改策略文件不仅定义了允许的域名,还定义了端口号,如果你不设置端口号,那么Flash Player默认为80端口(HTTP协议默认端口)。在<allow-access-from>标签中可以使用逗号隔开设置多个端口号,下面这个例子就是允许访问80和8080端口。

 

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.yanzimen.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy> 
    <allow-access-from domain="*" to-ports="80,8080" /> 
</cross-domain-policy> 
 

 

posted on 2015-08-24 10:38  晏过留痕  阅读(856)  评论(0编辑  收藏  举报