Руководство по actionscript. часть 3, стр. 105
// Запрашиваем файл политики безопасности по протоколу HTTP перед попыткой // установления соединения
Security. loadPolicyFile(«http://site-a. com/crossdomai п. xml»): var socket:Socket = new Socket( ): try {
// Пытаемся установить соединение (сразу после того, как был отправлен // запрос на получение файла политики безопасности socket. connect(«site-a. com», 9100); } catch (e:SecurityError) { trace(«Connection problem!»); trace(e. message);
}
При выполнении предыдущего кода приложение Flash Player перед тем, как разрешить запрашиваемое подключение к порту 9100, загружает файл политики
безопасности сайта site-c. com по протоколу HTTP. В списке разрешенных регионов этого файла политики безопасности содержится источник SWF-файла, устанавливающего соединение, поэтому подключение к порту 9100 может быть продолжено.
Мы познакомились со способами, с помощью которых распространитель ресурса может предоставить внешним SWF-файлам разрешение на загрузку данных, обращение к содержимому в виде данных и подключение к сокетам. В следующем разделе мы продолжим изучение механизмов разрешений приложения Flash Player, рассмотрев, как создатель SWF-файла может разрешить операцию кросс-скриптинга для SWF-файлов из внешних источников.
Разрешения создателя (allowDomainf))
Как уже говорилось, разрешения распространителя позволяют выполнять операции обращения к содержимому в виде данных, загрузки данных и сокетных соединений. Разрешения распространителя называются так потому, что они должны быть установлены распространителем ресурса, к которому предоставляется доступ.
В отличие от этого, разрешения создателя — это разрешения, устанавливаемые создателем SWF-файла, а не его распространителем. Разрешения создателя более ограниченны, чем разрешения распространителя; они разрешают только операции кросс-скриптинга и скриптинга SWF-файлов из HTML-файлов.
В этой книге не рассматриваются операции скриптинга SWF-файлов из HTML-файлов. А л Подробную информацию о безопасности и операциях скриптинга SWF-файлов из HTML-ц>У файлов можно найти в разделах, описывающих статические методы allowDomain()
и allowInsecureDomain(), справочника по языку ActionScript корпорации Adobe.
В отличие от разрешений распространителя, не зависящих от содержимого, к которому предоставляется доступ, разрешения создателя устанавливаются из SWF-файлов. Вызывая метод Security. allowDomain ( ) из SWF-файла, разработчик может разрешить SWF-файлам из внешних источников выполнять операции кросс-скриптинга над этим SWF-файлом. Например, файл app. swf содержит следующую строку кода:
Securi ty. allowDomai n(«site-b. com»);
В этом случае любой SWF-файл, загруженный из источника site-b. com, может выполнять кросс-скриптинг файла app. swf. Более того, поскольку вызов метода allowDomain ( ) происходит внутри SWF-файла, предоставляемые разрешения остаются действительными независимо от размещения этого SWF-файла.