0

別のサーバー (example.com) からテキスト ファイルを読み込もうとする localhost に swf があります。テキスト ファイルは、次のサブディレクトリにあります: example.com/test/example.txt

まず、ルートとサブディレクトリの内容は次のとおりです。

www.example.com:

/クロスドメイン.xml

<?xml version="1.0"?>   
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="master-only"/> 
    <allow-access-from domain="*" secure="false" />
</cross-domain-policy>

/test/crossdomain.xml

<?xml version="1.0"?>   
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*"/>
</cross-domain-policy>

/test/example.txt

ここで、アクションスクリプトで次のように明示的に言及すると:

Security.loadPolicyFile("http://example.com/test/crossdomain.xml");

そして、actionscript にhttp://example.com/test/example.txtをロードします。最初のアクションは、ルートの下にあるマスター ポリシー ファイルをチェックして、そのメタ ポリシーがテスト フォルダーからの crossdomain.xml の読み込みを許可しているかどうかを確認することです。ここでは、メタポリシーで「マスターのみ」が指定されているため、security.loadpolicyfile() で指定されたポリシー ファイルは読み込まれないと想定しています。しかし、私の質問は、このチェックの後、マスター ポリシー ファイルで<allow-access-from domain="*" secure="false" />指定されたポリシーのために、マスター ポリシー ファイルがテスト フォルダーからのテキスト ファイルのアクセス要求を許可するかどうかです。

4

1 に答える 1

0

Adobe Crossdomain ポリシーの仕様に従って、

  1. swf は、クロスドメイン ポリシーが指定されていることを確認します。
  2. マスター ポリシー ファイルをチェックして、指定されたポリシー ファイルが許可されているかどうかを確認します。
  3. 指定されたマスター ポリシー ファイルは許可されていないため、マスター ポリシー ファイルをロードし、それに応じて許可を付与することはデフォルトです。
于 2013-04-23T22:40:55.530 に答える