【问题标题】:actionscript3 tls socket and flash policy files : request for resource at tlssocket deniedactionscript3 tls socket 和 flash 策略文件:在 tlssocket 的资源请求被拒绝
【发布时间】:2012-09-09 05:22:55
【问题描述】:

以下是令我困惑的要点:

  • 我正在尝试使用 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 sn-p (Test.swf),它试图建立上述 TLS 套接字(在端口 443 上)。

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

结果

运行 1

此运行仅通过内置的策略文件请求端口 843 请求策略文件。 以下是 Test.swf 运行的痕迹:

闪存日志:

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

政策日志:

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

运行 2

对于本次运行,除了提供上述文件之外,策略文件服务器已针对另一次迭代进行了修改,以将以下 xml 节点添加到响应中: (根据 adobe 文档)
此运行通过内置的策略文件请求端口 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
错误:来自http://localhost/~mic/flash/Test.swf 的请求者对 tlssocket://mic.test.com:443 的资源请求由于缺少策略文件权限而被拒绝。

政策日志:

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

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

你能指出我的想法哪里错了吗?

【问题讨论】:

  • @wvxvw 感谢您的调查。我确实查看了通过网络传输的内容 - 在(策略)服务器和客户端上,我看到的是......有点奇怪。我假设我应该清楚地看到客户&lt;policy-file-request/&gt;。然而我看到的是乱码。
  • 使用的 Flash 播放器是 11.4 r402
  • 答案原来是策略文件服务器需要能够通过 TLS 连接响应请求。 @wvxvw - 我很想感谢你,因为使用wireshark 终于为我指明了正确的方向......我该怎么办?

标签: flash actionscript policy


【解决方案1】:

由@wvxvw 推荐 结果证明,策略文件服务器需要能够通过 TLS 连接响应请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多