Проблемы с файловым сервером Adobe Socket Policy - PullRequest
1 голос
/ 16 июля 2009

Кто-нибудь смог успешно внедрить службу, которая обслуживает требуемый файл политики сокетов для FlashPlayer?

Я использую Python для службы, предоставляемой Adobe на

http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

и используя следующий файл политики:

<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
 <site-control permitted-cross-domain-policies="master-only"/>
 <allow-access-from domain="*" to-ports="*" secure="false"/>
</cross-domain-policy>

и получение этого сообщения от Flash:

[SecurityErrorEvent type="securityError" bubbles=false 
cancelable=false eventPhase=2
text="Error #2048: 
Security sandbox violation: http://www.mapopolis.com/family/Tree.swf   
cannot load data from www.mapopolis.com:1900."]

Спасибо.

Ответы [ 7 ]

6 голосов
/ 13 мая 2010

Теперь имеется модуль для файлов политики веб-сервера Apache для сервера, совместимых с новым Flash 9.whither и Flash 10+, которые требуют, чтобы файлы политики сокетов обслуживались с использованием протокола сокетов Adobe.

http://www.beamartyr.net/articles/adobepolicyfileserver.html

3 голосов
/ 14 января 2013

Я уже несколько раз обращался к этому, пытаясь использовать чужой сервер политики и писать свой собственный.Элементы, которые я обнаружил, что все должны быть там:

  • прослушивание сокета 843.
  • При получении нового соединения прочитайте все данные.Не просто опционально отправляйте политику на соединение!
  • , вы можете проверить, является ли полученный запрос правильным запросом политики, или просто проигнорировать его.Я не видел веских причин для проверки моего использования.
  • отправьте xml с завершающим байтом "\ 0".
  • закройте сокет!
  • больше, чемскорее всего, вам нужен параметр secure = "false" в разделе разрешения-доступа-от политики.
2 голосов
/ 20 января 2012

Если вы используете Debian, я написал модуль Apache для обслуживания файлов политики сокетов Adobe, который доступен по адресу:

http://socketpolicyserver.com

Пакет включает рабочие файлы конфигурации в:

/ USR / доли / DOC / libapache2-мод-сокет-сервер политики / примеры /

1 голос
/ 17 июля 2009

Попробуйте разместить файл политики на порту 843, если ваш администратор разрешит доступ к 843. Вот ссылка, которая сообщает вам о файлах политики сокетов.

http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

1 голос
/ 16 июля 2009

ваш сокет-сервер должен реагировать особым образом на флеш-сокет, когда этот пытается подключиться и запрашивает "crossdomain"

http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security_04.html

http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security_05.html

1 голос
/ 16 июля 2009

Если вы используете AS3 ...

Вы можете переопределить файлы политики crossdomain.xml во флеш-памяти следующим образом:

Security.allowDomain("*");
Security.allowInsecureDomain("*");

Но если вам нужен файл crossdomain.xml, убедитесь, что он находится в корневом каталоге сервера, к которому вы пытаетесь получить доступ. Также попробуйте полностью базовую простую версию, чтобы убедиться, что она работает, например:

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

Убедитесь, что он называется crossdomain.xml и находится в вашем корне.

Вы также можете изменить файл политики на другой сервер или имя файла, например:

Security.loadPolicyFile("http://www.example.com/sub/dir/pf.xml");

Если вы используете AS2 / flash8 (во-первых, я извиняюсь), то вам нужно убедиться, что crossdomain.xml находится в корне сервера, на который вы попали.

0 голосов
/ 09 сентября 2009

Вы отправляете завершающий 0-байт после

<cross-domain-policy>
     <allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>

Проверьте http://www.lightsphere.com/dev/articles/flash_socket_policy.html

...