1

有没有人能够成功地实施一项服务来为 FlashPlayer 提供所需的套接字策略文件?

我正在运行 Adob​​e 提供的服务的 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."]

谢谢。

4

7 回答 7

6

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

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

于 2010-05-12T20:02:31.960 回答
3

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

  • 监听套接字 843。
  • 接收新连接时,读取所有数据。不要只发送连接策略!
  • 可选地,您可以测试接收到的数据是否是正确的策略请求,或者直接忽略它。我还没有看到一个很好的理由来验证我的使用。
  • 发送带有尾随“\0”字节的 xml。
  • 关闭插座!
  • 您很可能需要策略的 allow-access-from 部分中的 secure="false" 选项。
于 2013-01-14T02:49:57.013 回答
2

如果您使用的是 Debian,我已经编写了一个 Apache 模块来提供 Adob​​e 套接字策略文件,该模块可在以下位置获得:

http://socketpolicyserver.com

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

/usr/share/doc/libapache2-mod-socket-policy-server/examples/

于 2012-01-20T06:21:24.763 回答
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 位于您正在访问的服务器的根目录中。

于 2009-07-16T13:51:25.990 回答
1

当此套接字服务器尝试连接并请求“跨域”时,您的套接字服务器必须以特殊方式响应闪存套接字

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

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

于 2009-07-16T14:08:31.973 回答
1

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

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

于 2009-07-17T15:05:37.543 回答
0

您是否在发送后发送尾随 0 字节

<cross-domain-policy>
     <allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>

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

于 2009-09-08T21:42:06.600 回答