主策略文件与子目录中的crossdomain.xml

时间:2013-04-16 00:02:16

标签: actionscript-3 flash cross-domain crossdomain.xml cross-domain-policy

我在localhost上有一个swf,它尝试从另一台服务器读取文本文件 - example.com。文本文件位于子目录中,如下所示:example.com/test/example.txt

首先是root和子目录的内容:

www.example.com:

的/crossdomain.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");

然后在动作脚本中加载:http://example.com/test/example.txt。现在,第一个操作应该是检查root下的主策略文件,以检查其元策略是否允许从test文件夹加载crossdomain.xml。由于元策略指定“仅限master”,因此我假设security.loadpolicyfile()指定的策略文件不会被加载。但我的问题是,在检查之后,主策略文件是否允许来自测试文件夹的文本文件的访问请求,因为主策略文件中指定了策略<allow-access-from domain="*" secure="false" />

1 个答案:

答案 0 :(得分:0)

根据Adobe Crossdomain政策规范,

  1. swf发现指定了跨域策略。
  2. 检查主策略文件以查看是否允许指定的策略文件。
  3. 由于不允许指定的主策略文件,因此默认加载主策略文件并相应地授予权限。