【问题标题】:Problems with cross-domain.xml files in Flash 10Flash 10 中的 cross-domain.xml 文件的问题
【发布时间】:2011-04-26 01:36:57
【问题描述】:

我觉得我好像在用头撞墙。我已经尝试过(我认为)跨域 xml 文件的所有变体,但没有成功。无论我尝试什么,我似乎都无法让我的跨域 Loader() 请求正常工作。这是我的 policyfiles.txt 日志文件的输出

OK: Root-level SWF loaded: http://cool.com:81/WEBPLAYERAS3.swf
OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/9175218823c9438aa322cdb767561dbd.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf
OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/a61d36278cc44cd1a0b8fa10f3edc914.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf
OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/ba8d7a1701954a6cb03e7aaf12a26a2b.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf
OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/91f6f184518247f0916692286dd7101a.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf
OK: Policy file accepted: https://replayservice2.secretdomain.com/crossdomain.xml
Error: Request for resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/9175218823c9438aa322cdb767561dbd.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf is denied due to lack of policy file permissions.
Error: Request for resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/a61d36278cc44cd1a0b8fa10f3edc914.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf is denied due to lack of policy file permissions.
Error: Request for resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/ba8d7a1701954a6cb03e7aaf12a26a2b.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf is denied due to lack of policy file permissions.
Error: Request for resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/91f6f184518247f0916692286dd7101a.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf is denied due to lack of policy file permissions.
OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/9175218823c9438aa322cdb767561dbd.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf
Error: Request for resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/9175218823c9438aa322cdb767561dbd.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf is denied due to lack of policy file permissions.
OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/9175218823c9438aa322cdb767561dbd.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf
Error: Request for resource at https://replayservice2.secretdomain.com/api/servlet/screenshot/0.8/1.0/9175218823c9438aa322cdb767561dbd.jpg by requestor from http://cool.com:81/WEBPLAYERAS3.swf is denied due to lack of policy file permissions.

这是我的 crossdomain.xml 文件:

<cross-domain-policy xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
<allow-access-from domain="*" secure="true"/>
<site-control permitted-cross-domain-policies="master-only"/>
</cross-domain-policy>

请注意,实际域已替换为 secretdomain.com。

我所做的只是在 AS3 中检索图像并将它们分配给位图。

更新

这个问题似乎只在从不安全的服务器调用我们的安全服务器时出现。这只是被禁止,还是有办法解决这个问题?

【问题讨论】:

标签: flash actionscript-3 security crossdomain.xml


【解决方案1】:

您的更新是您整个问题的答案:
“这个问题似乎只在从不安全的服务器调用我们的安全服务器时出现。这是禁止的,还是有办法解决这个问题?”

特别是当我们查看您的政策文件的重要部分时:

<allow-access-from domain="*" secure="true"/>

“secure=True”部分意味着您绝对不允许调用混合匹配的安全和不安全连接,它们都必须是安全的。通过在那里拥有“真正”的价值,你就是那个禁止它的人。当然,解决方法是将其设置为“secure=False”,就像在此处发布的其他几个策略文件中一样。

【讨论】:

    【解决方案2】:

    如果您尝试从 http 端口与 https 端口进行通信,您将得到 “swf 由于缺少策略文件权限而被拒绝” 为避免此类错误,您可以在跨域中包含以下标记.xml

     

    这解决了“安全沙箱违规”

    如果您收到警告消息 " 未指定元策略。应用默认元策略 'master-only'。" 将以下标记放在 crossdomain.xml 中

     

    【讨论】:

      【解决方案3】:

      如果有帮助,我已经包含了我们的跨域策略。我们唯一不同的是网站控制标签。

      <cross-domain-policy xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
         <site-control permitted-cross-domain-policies="all"/> 
         <allow-http-request-headers-from domain="*"/> 
         <allow-access-from domain="*" secure="false" to-ports="*"/>
      </cross-domain-policy>
      

      【讨论】:

        【解决方案4】:

        我是 ActionScript 新手,但 Security.allowDomain("domain.com") 能解决问题吗?

        【讨论】:

          【解决方案5】:

          我在您发布的内容中看到了

          OK: Root-level SWF loaded: http://cool.com:81/WEBPLAYERAS3.swf
          

          这告诉我您的 swf 正在端口 81 上加载
          你在哪个端口抛出跨域? 在您使用的每个端口上都有一个这一点非常重要。

          【讨论】:

          • 好吧,调用 OUT 的 swf 在端口 81,但我们调用 TO 的服务器在端口 80。
          • 那么你需要一个跨域文件,位于服务器根目录的 80 端口
          • 哦,等一下,您的 swf 在 http 端口 81 上,而您正在尝试调用 https 端口 80?
          • 对不起,我猜 Https 默认是 443。但是是的 - http 端口 81 到 https 端口 443。
          • 最好的办法是让 swf 从端口 80 上的 https 加载。如果您不能在服务器根目录中的 https 服务器端口 80 上执行此操作,请在此处提供跨域并指定 cool .com 在端口 81 上是允许的。之后重新发布任何错误
          【解决方案6】:

          除了在'allow-access-from'标签中设置secure="false",还要在'allow-http-request-headers-from'标签中设置secure="false"。您的 crossdomain.xml 应该如下所示-

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
          <cross-domain-policy>
          <allow-access-from domain="*" secure="false"/>
          <allow-http-request-headers-from domain="*" headers="SOAPAction"  secure="false"/>
          </cross-domain-policy>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-03
            • 2011-04-30
            • 1970-01-01
            • 1970-01-01
            • 2012-01-26
            • 2013-06-17
            相关资源
            最近更新 更多