Функция AS3 LoadPolicyFile также применима к удаленным SWF-файлам? - PullRequest
2 голосов
/ 02 марта 2012

У меня есть сервер swf one one, который извлекает контент с сервера Amazon S3.На данный момент я настроил общую междоменную политику, разрешающую доступ ко всем доменам:

На сервере, содержащем swf:

<?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="*" />
</cross-domain-policy>

На сервере S3:

<?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>
  <site-control permitted-cross-domain-policies="master-only" />
  <allow-access-from domain="*" />
  <allow-http-request-headers-from domain="*" 
    headers="SOAPAction" />
</cross-domain-policy>

Похоже, что они играют хорошо (по большей части), так как мой SWF теперь прекрасно загружает файлы JSON, XML и т. Д. С сервера S3.То, что он не делает правильно, это загрузка SWF-файлов с сервера S3, когда он пытается сделать это, он выдает следующее исключение:

SecurityError: Ошибка # 2121: нарушение изолированной программной среды безопасности: загрузчик.content: s3.amazonaws.com/bucket_name/swfs/foo.swf не может получить доступ к s3.amazonaws.com/bucket_name/data/swfs/bar.swf.Это можно обойти, вызвав Security.allowDomain.

Я предполагаю, что это потому, что удаленные swfs могут содержать вредоносный исполняемый код.Действительно ли мне нужно установить для allowDomain что-то или есть какой-то другой «более правильный» способ, позволяющий моему swf загружать другие удаленные swfs?

Ответы [ 2 ]

0 голосов
/ 02 мая 2012

Убедитесь, что вы используете имя сегмента в качестве субдомена как для загрузки файла политики, так и для каждого запроса файла / URL.

0 голосов
/ 03 марта 2012

Я ответил на аналогичный вопрос здесь:

https://stackoverflow.com/a/9547996/579230

Кроме того, если ваш crossdomain.xml установлен, вы можете просто сделать loaderContext.checkPolicyFile = true вместо явной загрузки файла.

...