actionscript3 tls套接字和flash策略文件:在tlssocket被拒绝的资源请求

时间:2012-09-16 23:57:51

标签: flash actionscript policy

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

  • 我正在尝试使用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跟踪内联跟踪和与Flash策略相关的消息。

结果

RUN 1

此运行只有闪存通过它内置的策略文件请求端口843询问策略文件。 以下是Test.swf运行的跟踪:

FLASH LOG:

  

*安全沙箱违规*
  与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
  确定:在策略文件中搜索以授权从资源加载数据   at tlssocket://mic.test.com:443来自http://localhost/~mic/flash/Test.swf的请求者   错误:由于缺少策略文件权限,来自http://localhost/~mic/flash/Test.swf的请求者对tlssocket://mic.test.com:443处的资源请求被拒绝。

RUN 2

对于此次运行,除了如上所述提供文件外,还修改了策略文件服务器以进行另一次迭代,以将以下xml节点添加到响应中: (根据adobe docs)
此运行有闪存通过它内置的策略文件请求端口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运行的跟踪:

FLASH LOG:

  

*安全沙箱违规*
  与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处从资源加载数据   确定:已接受政策文件:https://mic.test.com:10443/crossdomain.xml
  错误:由于缺少策略文件权限,来自http://localhost/~mic/flash/Test.swf的请求者对tlssocket://mic.test.com:443处的资源请求被拒绝。

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

你对我的想法错在哪里有什么指示吗?

1 个答案:

答案 0 :(得分:1)

按照@wvxvw的建议 答案结果是策略文件服务器需要能够通过TLS连接回答请求。