Adobe套接字策略文件服务器问题

时间:2009-07-16 13:44:13

标签: flash security sockets actionscript policy

是否有人能够成功实现服务以向FlashPlayer提供所需的套接字策略文件?

我在

运行Adobe提供的服务的Python实现
http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

并使用以下政策文件:

<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
 <site-control permitted-cross-domain-policies="master-only"/>
 <allow-access-from domain="*" to-ports="*" secure="false"/>
</cross-domain-policy>

并从Flash收到此消息:

[SecurityErrorEvent type="securityError" bubbles=false 
cancelable=false eventPhase=2
text="Error #2048: 
Security sandbox violation: http://www.mapopolis.com/family/Tree.swf   
cannot load data from www.mapopolis.com:1900."]

感谢。

7 个答案:

答案 0 :(得分:6)

现在有一个Apache webserver到服务器套接字策略文件的模块,与新的Flash 9.whatever和Flash 10+兼容,需要使用Adobe套接字协议提供套接字策略文件。

http://www.beamartyr.net/articles/adobepolicyfileserver.html

答案 1 :(得分:3)

我现在已经尝试了几次,尝试使用其他人的策略服务器,并编写自己的策略服务器。 我发现所有元素都需要存在的元素:

  • 听插座843。
  • 接收新连接时,请读取所有数据。不要只是发送连接政策!
  • 可选地,您可以测试接收的数据是否是正确的策略请求,或者只是忽略它。我没有看到在我的使用中验证的充分理由。
  • 发送带有尾部“\ 0”字节的xml。
  • 关闭套接字!
  • 您很可能需要在策略的allow-access-from部分中使用secure =“false”选项。

答案 2 :(得分:2)

如果你正在使用Debian,我已经编写了一个用于提供Adobe套接字策略文件的Apache模块,该文件位于:

  

http://socketpolicyserver.com

该软件包包括以下工作配置文件:

  

的/ usr /共享/ DOC /中的libapache2-MOD-插座策略的服务器/实例/

答案 3 :(得分:1)

假设您使用的是AS3 ......

您可以像这样覆盖闪存中的crossdomain.xml策略文件:

Security.allowDomain("*");
Security.allowInsecureDomain("*");

但是如果您需要crossdomain.xml,请确保它位于您尝试访问的服务器的根目录中。同时尝试一个完全基础的简单版本,以确保它的工作原理如下:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy> 

确保将其命名为crossdomain.xml并在您的根目录中。

您还可以将策略文件更改为其他服务器或文件名,如下所示:

Security.loadPolicyFile("http://www.example.com/sub/dir/pf.xml");

如果您使用的是AS2 / flash8(首先我很抱歉),那么您需要确保crossdomain.xml位于您正在服务的服务器的根目录中。

答案 4 :(得分:1)

当套接字服务器尝试连接并询问“crossdomain”时,它必须以特殊方式响应闪存套接字

http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security_04.html

http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security_05.html

答案 5 :(得分:1)

尝试在端口843托管策略文件,假设您的管理员将允许访问843.这是一个告诉您有关套接字策略文件的链接。

http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

答案 6 :(得分:0)

之后发送一个0字节的尾随字符
<cross-domain-policy>
     <allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>

检查 http://www.lightsphere.com/dev/articles/flash_socket_policy.html