【问题标题】:Adobe Socket Policy File Server ProblemsAdobe 套接字策略文件服务器问题
【发布时间】:2010-11-11 09:11:54
【问题描述】:

有没有人能够成功地实施一项服务来为 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."]

谢谢。

【问题讨论】:

    标签: flash security sockets actionscript policy


    【解决方案1】:

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

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

    【讨论】:

    • 很高兴看到这个 apache 策略服务器项目,Isaac!跟上!
    • 我知道的旧线程。 (抱歉)这个项目还有效吗?我想在 RPi 和 AS2.0 上使用它。谢谢。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果您使用的是 Debian,我已经编写了一个 Apache 模块,用于提供 Adob​​e 套接字策略文件,该模块位于:

      http://socketpolicyserver.com

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

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

      【讨论】:

        【解决方案4】:

        假设您使用的是 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 位于您正在访问的服务器的根目录中。

        【讨论】:

        • 我正在使用 facebooks crossdomain.xml 但我不断收到我的 checkPolicy 未设置的错误:/
        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

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

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

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

          【讨论】:

            【解决方案7】:

            你是否在

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

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

            【讨论】:

              猜你喜欢
              • 2011-01-08
              • 2010-11-27
              • 2011-07-23
              • 2013-04-05
              • 2021-08-30
              • 2012-05-19
              • 2021-09-19
              • 1970-01-01
              • 2020-10-12
              相关资源
              最近更新 更多