1

以下是让我感到困惑的要点:

  • 我正在尝试使用 AS3 的 SecureSocket 类在我们的后端的端口 443 上建立一个 TLS 套接字。
  • 后端有一个运行在端口 843 上侦听策略文件请求的服务。(如果您熟悉节点,这是为策略文件提供服务的服务器https://github.com/3rd-Eden/FlashPolicyFileServer
  • 提供的策略文件是
    <?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="*" to-ports="*"/></cross-domain-policy>

  • 我写了一个小测试 Flash 片段(Test.swf),它试图建立所说的 TLS 套接字(在端口 443 上)。

  • 通过 Vizzy Flash Tracer(在 Mac 上)启用和完成日志记录
  • Vizzy 跟踪内联跟踪和闪存策略相关消息。

结果

运行 1

此运行仅通过内置策略文件请求端口 843 对策略文件进行 Flash 请求。以下是 Test.swf 运行的跟踪:

闪存日志:

* 违反安全沙箱 *
与 mic.test.com:443 的连接已停止 - 不允许出现错误:由于缺少策略文件权限http://localhost/~mic/flash/Test.swf
,请求者在 tlssocket://mic.test.com:443 处的资源请求被拒绝。http://localhost/~mic/flash/Test.swf

政策日志:

确定:已加载根级 SWF:http://localhost/~mic/flash/Test.swf
确定:在策略文件中搜索以授权请求者从 tlssocket://mic.test.com:443 的资源加载数据,http://localhost/~mic/flash/Test.swf
错误:请求 tlssocket://mic.test 的资源。http://localhost/~mic/flash/Test.swf由于缺少策略文件权限,请求者的 com:443被拒绝。

运行 2

对于此运行,除了提供上述文件之外,策略文件服务器已被修改以进行另一次迭代,以将以下 xml 节点添加到响应中:(根据 adobe 文档)
此运行通过它构建了 flash 请求主策略文件在策略文件请求端口 843 中,然后在不同的端口上加载 crossdomain.xml 策略文件(准确地说是从网络服务器)
crossdomain.xml 文件如下所示:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
<!-- Policy file for xmlsocket://socks.example.com -->
<cross-domain-policy>
   <allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>

以下是 Test.swf 运行的跟踪:

闪存日志:

* 违反安全沙箱 *
与 mic.test.com:443 的连接已停止 - 不允许出现错误:由于缺少策略文件权限 http://localhost/~mic/flash/Test.swf
,请求者在 tlssocket://mic.test.com:443 处的资源请求被拒绝。http://localhost/~mic/flash/Test.swf

政策日志:

确定:已加载根级 SWF:http://localhost/~mic/flash/Test.swf
确定:在策略文件中搜索以授权请求者从 tlssocket://mic.test.com:443 的资源加载数据:http://localhost/~mic/flash/Test.swf 确定:已接受策略文件:https://mic.test。 com:10443/crossdomain.xml错误:由于缺少策略文件权限
,请求者在 tlssocket://mic.test.com:443 处的资源请求被拒绝。http://localhost/~mic/flash/Test.swf

唯一不同的是,flash 声称接受策略文件,但仍然拒绝播放。

你对我的想法哪里错了有什么建议吗?

4

1 回答 1

1

正如@wvxvw 所建议的那样,答案原来是策略文件服务器需要能够通过 TLS 连接来回答请求。

于 2013-08-02T07:34:22.323 回答