Если ваше приложение делает что-либо из нижеперечисленного, то вашему сайту срочно нужен файл с описанием междоменной политики безопасности:
("Абсолютный URL" — это что-то вроде 'http://www.deneg.net' или 'http://nichego.net');
Если ваш сайт использует что-либо и названного и на нем не выложен файл с описанием междоменной политики безопасности (cross-domain policy), пользователи Flash Player 7 увидят гадкое окно с предупреждением о нарушении безопасности — оно появится при просмотре вашего клипа, созданного под формат Flash Player 6.
Можете почитать статью от того, кто это натворил: Security Changes in Macromedia Flash Player 7 (Deneb Meketa — вот этот изобретатель).
Во Flash Player 6 все это начиналось с того, что придумали политику безопасности:
Во Flash Player 7 все стало еще хуже. Во Flash Player 6 приложения с поддоменов имели право обращаться к данным или клипам с родительского домена (и друг к другу). В Flash Player 7 доступ друг к другу/данным могут получить только приложения с точно одного и того же домена. Например, Flash Player 6 позволял клипу, хранящемуся на eshche.deneg.net загрузить XML с uzhe.deneg.net. А Flash Player 7 не позволит.
Вот еще один, более жестокий пример: во Flash Player 7, если вы обращаетесь к сайту по сокращенному URL типа "http://vodki.net" (без "www"), клипы с этого сайта не смогут загрузить данные с его полного URL, "www.vodki.net". Это ограничение касается файлов формата Flash Player 6 и Flash Player 7. Если .swf-файл опубликован под Flash Player 6 (или более ранний), то Flash Player 7 выдаст предупреждение, спрашивая посетителя, можно ли клипу получить доступ к данным с другого домена.
Файл с описанием междоменной политики безопасности поможет решить эти проблемы и автоматизировать доступ к данным на www.yoursite.com из клипа с yoursite.com.
<?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="www.yoursite.com" /> <allow-access-from domain="yoursite.com" /> </cross-domain-policy>
Описанная техника используется также для предоставления доступа к данным сайта с любого внешнего домена.
Например, чтобы дать всем клипам с moock.org доступ к yoursite.com, XML на yoursite.com должен быть таким:
<?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="www.yoursite.com" /> <allow-access-from domain="yoursite.com" /> <allow-access-from domain="*.moock.org" /> </cross-domain-policy>
После этого все клипы с moock.org (включая www.moock.org, games.moock.org, и т.д.) получат доступ к данным с yoursite.com. (Заметьте, в файле политики можно использовать символ "*".)
Веб-сервисы типа amazon.com или google.com могут предоставлять доступ к своим данным любому Flash-клипу, используя такие конструкции:
<?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>
Если вы держите XMLSocket-сервер типа Unity, вам также не обойтись без полицейского файла, который разрешит клипам, загруженным с www.yoursite.com или yoursite.com подключаться к серверу. Файл с политиками должен быть загружен через HTTP-протокол с домена, на котором находится ваш XMLSocket-сервер. Например, если вы запустили сокет-сервер на moock.org, то нужно запустить на moock.org веб-сервер, в руте которого и хранить файл с политиками и полицейскими:
<?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="www.moock.org" /> <allow-access-from domain="moock.org" /> </cross-domain-policy>
Без файла с политиками подключиться к серверу не удастся, например, сокет-сервер на moock.org не ответит клипу с www.moock.org.
System.security.allowDomain
System.security.allowInsecureDomain
Кое-что можно узнать здесь:
См. также справку к Macromedia Flash 2004: "ActionScript Reference Guide > Working with External Data > Flash Player security features > About allowing cross-domain loading".
// via Colin
Ненавижу политику.
Да-а-а-а уж :(( если вы открыли свой холодильник не за ручку, то пива вы не получите... ... а на крышку унитаза надо вешать листок с паспортными данными ваших друзей...
Согласен.. Вот щас буду на нашем сайте это починять.. А то ведь для пугливого юзера это предупреждение все равно что шлагбаум. А ну стоять! Ни шагу дальше, а то поимеете проблемы с безопасностью.. Апробую, так скз, твой метод, Рост, на практике..
причем шлагбаум навсегда. в другой раз испуганный юзер уже не придет... о таких нововведениях надо говорить громко и заранее, ну и вводить их хотя бы не в сезон отпусков...
Ну да. В релизе плеера хотя бы вменяемое окошко появляется - файл оттуда-то пытается получить данные с такого-то домена, а это небезопасно - разрешить (да/нет) (и все по английски есссно).
А в бете вообще кошмар был - на рабочем сайте вываливается окно "Невозможно скачать какой-то дата-файл с сайта" (проигнорить/уйти). Если сайт коммерческий, представьте сколько человек захотят проигнорировать ошибку и рискнуть заплатить деньги на этом сайте..
Щас хоть понятно стало откуда ноги растут и проблема устранена. Причем как 2 байта переслать. А представьте, сколько можно запросить у испуганного заказчика за апгрейд-лечение старого сайта ;) Макромедию наверно за это расцыловать надо?
>>Макромедию наверно за это расцыловать надо? Даже лизнуть %)
засунуть в одно место их политику
Полный бред! Эта левая схема конфы ни от чего в принципе не защищает, а работе мешает только так.
:-( Хотя Macromedia и правда всё до лампочки, видимо