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>

  • 上記のTLSソケット(ポート443)を確立しようとする小さなテストFlashスニペット(Test.swf)を作成しました。

  • ロギングが有効になり、Vizzy Flash Tracer(Macの場合)を介して実行されます
  • Vizzyは、インライントレースとフラッシュポリシー関連のメッセージの両方をトレースします。

結果

実行1

この実行では、組み込みのポリシーファイル要求ポート843を介してポリシーファイルをフラッシュアスクするだけです。以下は、Test.swf実行のトレースです。

フラッシュログ:

*セキュリティサンドボックス違反*
mic.test.com:443 への接続が停止しました-エラーから許可されていません:ポリシーファイルのアクセス許可がないためhttp://localhost/~mic/flash/Test.swf
、リクエスターからのtlssocket://mic.test.com:443でのリソースの要求が拒否されました。http://localhost/~mic/flash/Test.swf

ポリシーログ:

OK:ルートレベルのSWFがロードされました:http://localhost/~mic/flash/Test.swf
OK:ポリシーファイルを検索して、tlssocket://mic.test.com:443のリソースからのデータのロードを許可します。http://localhost/~mic/flash/Test.swf
エラー:tlssocket://mic.testのリソースのリクエスト。ポリシーファイルの権限がないため、fromリクエスターによるcom:443http://localhost/~mic/flash/Test.swfが拒否されました。

実行2

この実行では、上記のようにファイルを提供することに加えて、ポリシーファイルサーバーが別の反復用に変更され、次のxmlノードが応答に追加されます:( adobe docsによる)
この実行では、ビルドされたマスターポリシーファイルをフラッシュアスクしますポリシーファイルでポート843を要求し、crossdomain.xmlポリシーファイルを別のポートにロードします(正確にはWebサーバーから)
。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

ポリシーログ:

OK:ルートレベルのSWFがロードされました:http://localhost/~mic/flash/Test.swf
OK:ポリシーファイルを検索して、tlssocket://mic.test.com:443のリソースからのデータロードを承認します。OK http://localhost/~mic/flash/Test.swf :ポリシーファイルが受け入れられました:https://mic.test。 com:10443 / crossdomain.xmlエラー:ポリシーファイルのアクセス許可がないため
、リクエスターからのtlssocket://mic.test.com:443でのリソースの要求が拒否されました。http://localhost/~mic/flash/Test.swf

唯一の違いは、フラッシュがポリシーファイルを受け入れると主張しているにもかかわらず、再生を拒否していることです。

私の考えがどこで間違っているかについての指針はありますか?

4

1 に答える 1

1

@wvxvwが推奨するように、答えは、ポリシーファイルサーバーがTLS接続を介して要求に応答できる必要があるということでした。

于 2013-08-02T07:34:22.323 に答える