Проблемы с файлами cross-domain.xml во Flash 10 - PullRequest
2 голосов
/ 26 апреля 2011

Мне кажется, что я бью головой об стену на этом. Я пробовал (я думаю) все варианты междоменного 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 и присваиваю их растровым изображениям.

UPDATE

Эта проблема возникает только при вызове нашего защищенного сервера с небезопасного сервера. Это просто запрещено или есть способ обойти это?

Ответы [ 6 ]

3 голосов
/ 25 апреля 2012

В вашем обновлении есть ответ на всю вашу проблему:
"Эта проблема возникает только при вызове нашего защищенного сервера с незащищенного сервера. Это просто запрещено или есть способ обойти это?"

Особенно, когда мы смотрим на важную часть вашего файла политики:

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

Эта часть «secure = True» означает, что вам совершенно определенно не разрешено вызывать mix-n-match secure инезащищенные соединения, все они должны быть в безопасности.Имея это «истинное» значение, вы запрещаете это.Обойти это, конечно, можно установить «secure = False», как в некоторых других файлах политики, которые были здесь размещены.

2 голосов
/ 11 мая 2011

Если вы попытаетесь установить связь с http-порта на https-порт, вы получите "swf отклонен из-за отсутствия прав доступа к файлу политики" , чтобы избежать ошибок этого типа, вы можете включить следующий тег в междоменный домен. XML

  < allow-access-from domain="*" secure="false" to-ports="*" > 

Это решает "нарушение безопасности песочницы"

В случае, если вы получаете предупреждение msg "не указывает мета-политику. Применение мета-политики по умолчанию 'только для мастера'." поместите следующий тег в crossdomain.xml

 < site-control permitted-cross-domain-policies="all" > 
1 голос
/ 26 апреля 2011

Я включил нашу междоменную политику, если это поможет. Единственное, что мы делаем по-другому, это тег управления сайтом.

<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>
0 голосов
/ 16 января 2014

Помимо установки secure = "false" в теге allow-access-from, также установите secure = "false" в теге allow-http-request-headers-from. Ваш файл 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>
0 голосов
/ 26 апреля 2011

Я вижу в материалах, которые вы разместили

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

Это говорит о том, что ваш SWF загружается на порт 81
На каком порту вы подключаете кросс-домен? Это очень важно, чтобы у вас было по одному на каждый порт, который вы используете.

0 голосов
/ 26 апреля 2011

Я новичок в ActionScript, но делает ли Security.allowDomain ("domain.com") свое дело?

...