Руководство по actionscript. часть 3, стр. 080

Обращение к содержимому в виде данных

Обращение к содержимому в виде данных подразумевает чтение внутренней информации ресурса содержимого, например чтение пикселов растрового изображения или спектра звука. В табл. 19.2 представлены методы языка ActionScript, которые считаются операциями «обращения к содержимому в виде данных» с точки зрения безопасности.

Таблица 19.2. Обращение к содержимому в виде данных, примеры операций

Операция Описание

Обращение к изображению через переменную экземпляра content класса Loader Получает объект Bitmap языка ActionScript, представляющий загруженное изображение

Вызов метода экземпляра draw() класса BitmapData Копирует пикселы отображаемого элемента в объект BitmapData

Вызов метода экземпляра computeSpectrum() класса SoundMixer Копирует данные текущей звуковой волны4 в объект ByteArray

Обращение к переменной экземпляра id3 класса Sound Читает метаданные в формате ID3 звукового файла

Кросс-скриптинг

Кросс-скриптинг подразумевает обращение к загруженному SWF-файлу программным путем. Многие операции языка ActionScript могут быть применены для кросс-скриптинга SWF-файла, включая следующие, но не ограничиваясь ими:

? использование переменной экземпляра content класса Loader для получения объекта, представляющего загруженный SWF-файл;

? обращение к переменным загруженного SWF-файла;

? вызов методов загруженного SWF-файла;

? привязывание к классу, определенному в загруженном SWF-файле;

? использование метода экземпляра draw ( ) класса BitmapData для копирования пикселов загруженного SWF-файла в объект BitmapData.

Руководство по actionscript. часть 3, стр. 081

Описание остальных операций кросс-скриптинга можно найти в справочнике по языку ActionScript корпорации Adobe, где явно указаны ограничения безопасности, которые применяются к каждой операции языка ActionScript.

Загрузка данных

В общем смысле термин «загрузка данных» может использоваться для описания широкого спектра операций загрузки приложения Flash Player, включая загрузку файлов с сервера через метод экземпляра download ( ) класса FileRef erence, загрузку объектов с помощью приложения Flash Remoting, загрузку бинарных данных через объект Socket и т. д. Однако для текущего обсуждения (и для оставшейся части данной главы) загрузка данных подразумевает следующее:

? загрузку внешнего текста, бинарных данных или переменных с помощью метода экземпляра load ( ) класса URLLoader;

? загрузку данных с помощью метода экземпляра load ( ) класса URLStrearn.

I Чтобы узнать об ограничениях, налагаемых средой Flash на операции загрузки данных, м& л * которые не рассматриваются в этой главе, обратитесь к справочнику по языку ActionScript ——-Щ? корпорации Adobe.

Для метода экземпляра load ( ) класса URLLoader формат загружаемых данных (текст, бинарные данные или переменные) задается переменной экземпляра dataFormat класса URLLoader. К обычным текстовым форматам файлов относятся форматы XML, ТХТ и HTML. К обычным форматам бинарных данных относятся изображения, SWF-файлы и сериализованные объекты в формате ActionScript Message Format (AMF). Тем не менее бинарными данными может быть любой файл или содержимое, загруженное в объект ByteArray для дальнейшей обработки в исходном бинарном формате. Переменные загружаются в од-ном-единственном формате: преобразованные в URL-строки переменные, которые были загружены в виде пар «имя/значение» из внешнего текстового файла или сценария.

Стоит отметить, что, как и в случае с загрузкой содержимого, внешняя операция становится операцией загрузки данных благодаря конкретному методу,

используемому для загрузки, а не типу файла данного ресурса. Например, загрузка SWF-файла с помощью метода экземпляра load ( ) класса URLLoader считается операцией загрузки данных] загрузка того же SWF-файла с помощью метода экземпляра load ( ) класса Loader считается операцией загрузки содержимого.

Ограничения на загрузку содержимого, обращение к содержимому в виде данных, загрузку данных и кросс-скриптинг

Теперь, когда мы разобрались, что представляют собой операции загрузки содержимого, обращения к содержимому в виде данных, кросс-скриптинга и загрузки данных, посмотрим, как каждый из четырех типов безопасности песочниц приложения Flash Player ограничивает эти операции.

В следующих четырех таблицах (табл. 19.3-19.6) перечислены условия, при которых каждый тип безопасности песочницы разрешает или запрещает выполнять операции загрузки содержимого, обращения к содержимому в виде данных, кросс-скриптинга и загрузки данных. В каждой таблице представлены конкретные правила, устанавливаемые отдельным типом безопасности песочницы, — разрешается или запрещается использовать внешние операции, перечисленные в крайнем левом столбце, для обращения к ресурсам, перечисленным в оставшихся столбцах таблицы.

Как видно из таблиц, некоторые операции допускаются только при наличии разрешения создателя или распространителя. Разрешение создателя подразумевает, что SWF-файл включает надлежащий вызов статического метода allowDomain ( ) класса Security(или, вpeдкиxcлyчaяx, вызoвмeтoдaallowInsecureDomain ( ) ).Разрешение распространителя подразумевает, что распространитель ресурса сделал доступным надлежащий файл междоменной политики безопасности. Более подробную информацию можно найти далее, в разд. «Разрешения создателя (allowDomain( ))» и «Разрешения распространителя (файлы политики безопасности)».

Как видно из табл. 19.3-19.6, загрузка содержимого разрешается в большем количестве ситуаций по сравнению с загрузкой содержимого в виде данных, кросс-скриптингом и загрузкой данных. Например, приложению может быть дано разрешение на загрузку и отображение растрового изображения, но запрещен доступ к исходным пиксельным данным этого изображения. Подобным образом приложению может быть дано разрешение на загрузку и отображение внешнего SWF-файла, но может требоваться разрешение на кросс-скриптинг этого SWF-файла.

Стоит отметить, что в табл. 19.3-19.6 рассмотрены разрешения только для одного направления взаимодействия, когда SWF-файл загружает или обращается к внешнему ресурсу. В этих таблицах не описано обратное направление взаимодействия, когда загруженный SWF-файл взаимодействует с SWF-файлом, загрузившим его. Информацию по двунаправленному взаимодействию между SWF-файлами можно найти в разделе Programming ActionScript 3.0 > Flash Player APIs > Flash Player Security > Cross-scripting документации корпорации Adobe.

Руководство по actionscript. часть 3, стр. 082

В табл. 19.3 перечислены правила, устанавливаемые типом безопасности песочницы «удаленный». Здесь выражение «регион происхождения SWF-файла» подразумевает удаленный регион, из которого был открыт или загружен данный SWF-файл. Например, если файл hiscores. swf загружается из удаленного местоположения http://coolgames. com/hiscores. swf, то регионом происхождения файла hiscores. swf является coolgames. com (дополнительные сведения по удаленным регионам можно найти в разд. «Локальная область действия, удаленная область действия и удаленные регионы»).

В табл. 19.3 демонстрируются следующие ключевые правила типа безопасности песочницы «удаленный».

? Операции загрузки содержимого, обращения к содержимому в виде данных, кросс-скриптинга и загрузки данных не могут использоваться вместе с ресурсами из локальной области действия.

? Все ресурсы из всей удаленной области действия могут загружаться в виде содержимого.

? Операции загрузки содержимого, обращения к содержимому в виде данных, кросс-скриптинга и загрузки данных могут использоваться для всех ресурсов из региона происхождения SWF-файла.

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

? Для SWF-файлов из удаленной области действия, находящихся за пределами региона происхождения SWF-файла, может быть выполнен кросс-скриптинг, если установлено соответствующее разрешение создателя.

Таблица 19.3. Тип безопасности песочницы «удаленный», допустимые и запрещенные операции

Операция Локальная область действия Ресурсы удаленной области действия из региона происхождения SWF-файла Ресурсы удаленной области действия, находящиеся за пределами региона происхождения SWF-файла

Загрузка содержимого Запрещается Допускается Допускается

Обращение к содержимому в виде данных Запрещается Допускается Допускается только по разрешению распространителя

Кросс-скриптинг Запрещается Допускается Допускается только по разрешению создателя

Загрузка данных Запрещается Допускается Допускается только по разрешению распространителя

В табл. 19.4 перечислены следующие ключевые правила, устанавливаемые типом безопасности песочницы «локальный с поддержкой файловой системы».

? Операции загрузки содержимого, обращения к содержимому в виде данных, кросс-скриптинга и загрузки данных не могут использоваться вместе с ресурсами из удаленной области действия.

Руководство по actionscript. часть 3, стр. 083

? Операции загрузки содержимого, обращения к содержимому в виде данных и загрузки данных могут использоваться для всех ресурсов, не являющихся SWF-файлами, из локальной области действия.

? Загрузка локальных SWF-файлов с поддержкой сети строго запрещается.

? Допускается загрузка и кросс-скриптинг других локальных SWF-файлов с поддержкой файловой системы.

? Для кросс-скриптинга локальных SWF-файлов с установленным доверием требуется разрешение создателя.

Таблица 19.4. Тип безопасности песочницы «локальный с поддержкой файловой системы», допустимые и запрещенные операции

Операция Ресурсы, не являющиеся SWF-файлами, в локальной области действия Локальные SWF-файлы с поддержкой файловой системы Локальные SWF-файлы с поддержкой сети Локальные SWF-файлы с установленным доверием Ресурсы в удаленной области действия

Загрузка содержимого Допускается Допускается Запрещается Допускается Запрещается

Обращение к содержимому в виде данных Допускается Запрещается

Кросс-скриптинг Допускается Запрещается Допускается только по разрешению создателя Запрещается

Загрузка данных Допускается — — — Запрещается

В табл. 19.5 перечислены следующие ключевые правила, устанавливаемые типом безопасности песочницы «локальный с поддержкой сети».

? Операции загрузки содержимого могут использоваться для ресурсов в удаленной области действия.

? Операции загрузки данных и обращения к содержимому в виде данных могут применяться для ресурсов в удаленной области действия, если установлено соответствующее разрешение распространителя.

? Операции загрузки содержимого могут использоваться для ресурсов, не являющихся SWF-файлами, в локальной области действия.

? Операции загрузки данных и обращения к содержимому в виде данных не могут применяться для ресурсов в локальной области действия.

Руководство по actionscript. часть 3, стр. 084

? Загрузка локальных SWF-файлов с поддержкой файловой системы строго запрещается.

? Допускается загрузка и кросс-скриптинг других локальных SWF-файлов с поддержкой сети.

? Для кросс-скриптинга локальных SWF-файлов с установленным доверием или удаленных SWF-файлов требуется разрешение создателя.

Таблица 19.5. Тип безопасности песочницы «локальный с поддержкой сети», допустимые и запрещенные операции

Операция Ресурсы, не 1 являющиеся SWF-файлами, в локальной области действия Локальные SWF-файлы с поддержкой файловой системы Локальные 1 SWF-файлы с поддержкой сети Локальные SWF-файлы с установленным доверием Ресурсы в удаленной области действия

Загрузка содержимого Допускается Запрещается Допускается Допускается Допускается

Обращение к содержимому в виде данных Запрещается Допускается только по разрешению распространителя

Кросс-скриптинг Запрещается Допускается Допускается только по разрешению создателя Допускается только по разрешению создателя

Загрузка данных Запрещается Допускается только по разрешению распространителя

В табл. 19.6 перечислены следующие ключевые правила, устанавливаемые типом безопасности песочницы «локальный с установленным доверием».

? Операции загрузки содержимого, обращения к содержимому в виде данных, кросс-скриптинга и загрузки данных могут использоваться для любых ресурсов в локальной и удаленной области действия.

? Тип безопасности песочницы «локальный с установленным доверием» дает SWF-файлу максимально возможную степень свободы из всех, которые может предоставить приложение Flash Player.

Таблица 19.6. Тип безопасности песочницы «локальный с установленным доверием», допустимые и запрещенные операции

Операция Ресурсы, не являющиеся SWF-файлами, в локальной области действия Локальные SWF-файлы с поддержкой файловой системы Локальные SWF-файлы с поддержкой сети Локальные SWF-файлы с установленным доверием Ресурсы в удаленной области действия

Загрузка содержимого Допускается Допускается Допускается Допускается Допускается

Обращение к содержимому в виде данных Допускается Допускается

Кросс-скриптинг — Допускается Допускается Допускается Допускается

Загрузка данных Допускается — — — Допускается

Мы познакомились с правилами, которые устанавливаются каждым из четырех типов безопасности песочниц для четырех типов операций. Перед тем как перейти к другим вопросам, касающимся безопасности, рассмотрим еще один тип операции — подключение к сокету.

Руководство по actionscript. часть 3, стр. 085

Безопасность сокетов

В языке ActionScript подключение к сокетам осуществляется посредством классов XMLSocket, Socket и NetConnection. В табл. 19.7 и 19.8 перечислены конкретные местоположения и порты, к которым можно открывать сокетные соединения с помощью методов классов XMLSocket и Socket. В таблицах не описан класс NetConnection, который используется в приложениях Adobe Flash Media Server и Adobe Flex. Информацию по безопасности класса NetConnection можно найти в документации по этим продуктам.

И в табл. 19.7, и в табл. 19.8 термин «разрешениераспространителя» подразумевает, что оператор сервера сделал доступным надлежащий файл междоменной политики безопасности. Более подробную информацию можно найти далее, в разд. «Разрешения распространителя (файлы политики безопасности)».

В табл. 19.7 показано, может ли удаленный SWF-файл устанавливать сокетное соединение с четырьмя перечисленными местоположениями.

Таблица 19.7. Удаленный тип безопасности песочницы, допустимые и запрещенные сокетные соединения

Локальная область действия, любой порт Удаленная область действия внутри региона происхождения SWF-файла, порт 1024 и выше Удаленная область действия внутри региона происхождения SWF-файла, порт 1023 и ниже Удаленная область действия за пределами области происхождения SWF-файла, любой порт

Допускается только по разрешению распространителя Допускается Допускается только по разрешению распространителя Допускается только по разрешению распространителя

В табл. 19.8 показано, может ли SWF-файл, тип безопасности песочницы которого представлен в крайнем левом столбце, устанавливать сокетное соединение с местоположениями, перечисленными в остальных столбцах.

Таблица 19.8. Локальные типы безопасности песочниц, допустимые и запрещенные сокетные соединения

Тип безопасности песочницы Локальная область действия, любой порт Удаленная область действия, любой порт

Локальный с поддержкой файловой системы Запрещается Запрещается

Локальный с поддержкой сети Допускается только по разрешению распространителя Допускается только по разрешению распространителя

Локальный с установленным доверием Допускается Допускается

Примеры сценариев безопасности

Чтобы подкрепить практикой изученный материал, рассмотрим несколько примеров, которые демонстрируют, как система безопасности приложения Flash Player позволяет предотвратить получение данных посторонними лицами. В каждом сценарии сначала описывается способ, которым мог бы воспользоваться хакер для получения данных при отсутствии системы безопасности приложения Flash Player, а затем порядок действий системы безопасности при предотвращении попытки хакера завладеть целевыми данными.

Руководство по actionscript. часть 3, стр. 086

Шпионское вложение в электронном письме — без системы безопасности Flash Player

Джо Хакер хочет похитить персональные данные Дэйва Юзера. Джо знает, что Дэйв заполняет свои налоговые декларации с помощью приложения АВСТах, работающего под управлением операционной системы Windows. Джо проводит небольшое исследование и обнаруживает, что приложение АВСТах хранит информацию о годовой налоговой декларации в XML-файле, который находится по адресу с: \ABCTax\taxreturn. xml. Если Джо сможет получить этот файл, он сможет воспользоваться содержащейся в нем информацией, чтобы открыть банковский счет и обратиться за получением кредитной карты от лица Дэйва. Итак, Джо отправляет по электронной почте письмо Дэйву, прикрепив к письму внешне безобидную анимацию cartoon, swf. Дэйв открывает электронное письмо и воспроизводит анимацию в браузере на своей локальной машине. Без ведома Дэйва файл cartoon. swf тайно использует метод URLLoader. load ( ) для получения файла taxreturn. xml из локальной файловой системы. После этого файл cartoon. swf использует метод flash. net. sendToURL ( ), чтобы выгрузить файл taxreturn. xml на сайт Джо.

Джо получает кредитную карту на имя Дэйва и покупает приставку Nintendo Wii с множеством отличных игр.

Шпионское вложение в электронном письме — с системой безопасности Flash Player

Как и раньше, Джо отправляет Дэйву электронное письмо, к которому прикреплена внешне безобидная анимация cartoon. swf. Дэйв открывает электронное письмо и воспроизводит анимацию в браузере на своей локальной машине. Поскольку файл cartoon. swf открывается из локальной области действия, приложение Flash Player проверяет, была ли включена поддержка сети при компиляции файла cartoon. swf.

Сначала предположим, что файл cartoon. swf был скомпилирован без поддержки сети. В этом случае приложение Flash Player присваивает файлу cartoon, swf тип безопасности песочницы «локальный с поддержкой файловой системы». Как и раньше, файл cartoon. swf тайно использует метод URLLoader. load ( ) для получения файла taxreturn. xml из локальной файловой системы. В соот-

ветствии с табл. 19.4 файлу cartoon. swf разрешается загрузить эти локальные данные. После этого он пытается использовать метод flash. net. sendToURL ( ), чтобы выгрузить файл taxreturn. xml на сайт Джо, однако эта попытка блокируется, поскольку локальным SWF-файлам с поддержкой файловой системы не разрешается выполнять операции flash. net. sendToURL ( ).

В предыдущих таблицах не рассматривались ограничения безопасности конкретно для метода flash. net. sendToURL(), однако, как отмечалось ранее, определить ограничения безопасности для любого метода интерфейса API приложения Flash Player можно в справочнике по языку ActionScript корпорации Adobe.

Теперь предположим, что файл cartoon. swf был скомпилирован с поддержкой сети. В данном случае приложение Flash Player присваивает ему тип безопасности песочницы «локальный с поддержкой сети». Как и раньше, файл cartoon, swf пытается тайно использовать метод URLLoader. load ( ) для получения файла taxreturn. xml из локальной файловой системы. Однако эта попытка блокируется, поскольку, в соответствии с табл. 19.5, локальные SWF-файлы с поддержкой сети не могут использовать операции загрузки данных для ресурсов в локальной области действия.

Джо вынужден покупать приставку Nintendo Wii за свои деньги.

Внутренняя корпоративная информация — без системы безопасности Flash Player

Джо Хакер хочет получить некую служебную информацию, чтобы совершить выгодную сделку на бирже. Джо раньше работал в корпорации WYZ, у которой есть общедоступный сайт www. wyzcorp. com. Джо остался в хороших отношениях с корпорацией WYZ, поэтому его наняли по контракту, чтобы обновить сведения о корпорации в файле profile. swf на сайте www. wyzcorp. com. Джо знает, что корпорация WYZ планирует выпустить важный продукт, что повлияет на стоимость акций компании. Джо также знает, что даты выпуска новых продуктов корпорации WYZ хранятся на внутреннем сайте, который находится за межсетевым экраном, по следующему адресу: strategy. wyzcorp. com/releasedates. html. Если Джо сможет тайно получить дату выпуска нового продукта, то сможет скупить акции корпорации WYZ за день до выхода этого продукта, а затем выгодно продать их.

Итак, Джо добавляет некий код в файл profile. swf, использующий метод URLLoader. load ( ), чтобы попытаться загрузить файл: strategy. wyzcorp. com/ releasedates. html. После этого сотрудник корпорации WYZ просматривает сведения о корпорации по адресу www. wyzcorp. com/profile. swf. Поскольку компьютер сотрудника находится за межсетевым экраном, он имеет доступ к сайту strategy. wyzcorp. com, поэтому попытка загрузить файл releasedates. html оказывается успешной! Без ведома сотрудника файл profile. swf использует метод flash. net. sendToURL ( ), чтобы выгрузить файл releasedates. html на сайт Джо.

Акции корпорации WYZ взлетают в цене, а Джо теперь может позволить себе заниматься любимым делом.

Внутренняя корпоративная информация — с системой безопасности Flash Player

Как и раньше, Джо размещает файл profile. swf на сайте www. wyzcorp. com, который использует метод URLLoader. load ( ), чтобы попытаться загрузить файл strategy. wyzcorp. com/releasedates. html. После этого сотрудник корпорации WYZ просматривает сведения о корпорации по адресу www. wyzcorp. com/profile. swf. Поскольку файл profile. swf открывается в удаленной области действия, среда выполнения Flash присваивает ему тип безопасности песочницы «удаленный». Когда файл www. wyzcorp. com/profile. swf пытается загрузить файл strategy. wyzcorp. com/releasedates. html, попытка блокируется, поскольку, в соответствии с табл. 19.3, удаленный SWF-файл не может использовать операции загрузки данных для ресурсов, находящихся за пределами удаленного региона происхождения этого файла.

Руководство по actionscript. часть 3, стр. 087

Джо надеется получить гигабайт трафика за баннерную рекламу нового продукта корпорации WYZ, чтобы оплатить жилье в следующем месяце.

Межсайтовая информация —

без системы безопасности Flash Player

Джо Хакер хочет похитить информацию о некоторых банковских счетах. Он работает в агентстве Hipster Ad Agency, занимающемся производством рекламы для банка ReallyHuge Bank. У этого банка есть система интернет-банкинга, доступная по адресу www. reallyhugebank. com/bank. swf. Приложение bank, swf загружает рекламу из файла www. hipsteradagency. com/ad. swf. Джо изучил структуру файла bank, swf с помощью декомпилятора SWF-файлов и теперь знает, в каких переменных приложение bank, swf хранит номера банковских счетов и пароли. С преступным намерением Джо добавляет в файл ad. swf код, который считывает значения этих переменных у своего родителя bank. swf, и затем использует метод flash. net. sendToURL ( ) для отправки похищенной информации на сайт Джо. Всякий раз, когда пользователь приложения bank. swf обращается к своему счету, Джо получает номер счета и пароль.

Джо жертвует баснословно большие суммы денег организации «Гринпис».

Межсайтовая информация —

с системой безопасности Flash Player

Как и раньше, Джо добавляет в файл ad. swf код, который считывает значения нужных переменных у своего родителя bank. swf. Пользователь запускает приложение www. reallyhugebank. com/bank. swf, а оно, в свою очередь, загружает «зловредный» файл Джо www. hipsteradagency. com/ad. swf. Поскольку файл ad. swf открывается из удаленной области действия, среда выполнения Flash присваивает ему тип безопасности песочницы «удаленный». Когда файл ad. swf пытается прочитать значения переменных файла bank. swf, эта попытка блокируется, поскольку, в соответствии с табл. 19.3, удаленный SWF-файл не может использовать операции

загрузки данных для ресурсов, находящихся за пределами удаленного региона происхождения этого файла.

Джо жертвует скромную сумму денег организации «Гринпис».

Выбор локального типа безопасности песочницы

Вы получили хорошее представление о мерах безопасности, обеспечиваемых каждым типом безопасности песочниц. Кроме того, вы узнали, что SWF-файлам, открытым или загруженным из местоположений удаленной области действия, всегда присваивается тип безопасности песочницы «удаленный», а SWF-файлам, открытым или загруженным из местоположений локальной области действия, присваивается один из трех локальных типов безопасности песочниц.

Теперь поближе познакомимся с механизмами, применяемыми для выбора одного из трех локальных типов безопасности песочниц. В каждом из трех последующих разделов представлен сценарий, в котором разработчик использует один из трех локальных типов безопасности песочниц. Каждый сценарий описывает и логическое обоснование, и сам механизм для выбора каждого типа безопасности песочницы.

Компиляция локального SWF-файла с поддержкой файловой системы

Сьюзен разрабатывает приложение-календарь calendar. swf, которое будет размещаться на сайте отеля. Календарь загружает информацию о праздниках из внешнего XML-файла holiday. xml. Приложение практически готово, поэтому Сьюзен необходимо отправить его на утверждение заказчику. Несмотря на то что приложение calendar, swf со временем будет размещено на сайте, заказчик хочет показать его множеству людей в отеле. В процессе демонстрации заказчик не желает иметь постоянное подключение к Интернету. Итак, Сьюзен отправляет файлы calendar. swf и holiday. xml заказчику.

Руководство по actionscript. часть 3, стр. 088

Чтобы в процессе демонстрации приложение calendar, swf могло загружать файл holiday. xml из локальной файловой системы, Сьюзен скомпилировала SWF-файл календаря с установленным в значение false флагом компилятора — use-network. В зависимости от используемой среды разработки применяются различные механизмы для установки флага компилятора — use-network. В приложении Flex Builder 2 Сьюзен выполняет следующие шаги, чтобы установить в значение false флаг компилятора-use-network.

1. На палитре Navigator (Навигатор) Сьюзен выбирает папку проекта для приложения-календаря.

2. В меню Project (Проект) она выбирает команду Properties (Свойства).

3. В окне Properties (Свойства) она выбирает раздел ActionScript Compiler (Компилятор ActionScript).

4. В поле ввода Additional compiler arguments (Дополнительные аргументы компилятора) она вводит — use-network=false.

5. Чтобы подтвердить установку, Сьюзен нажимает кнопку ОК.

В среде разработки Flash Сьюзен выполняет следующие шаги, чтобы установить в значение false флаг компилятора — use-network:

1. В меню File (Файл) Сьюзен выбирает команду Publish Settings (Настройки публикации).

2. В окне Publish Settings (Настройки публикации) она переходит на вкладку Flash.

3. В раскрывающемся списке Local playback security (Безопасность локального воспроизведения) она выбирает пункт Access local files only (Обращение только к локальным файлам).

4. Чтобы подтвердить установку, Сьюзен нажимает кнопку ОК.

При использовании консольного компилятора из бесплатного инструментария разработчика Flex SDK Сьюзен указывает значение флага — use-network в качестве параметра компилятора mxmlc. Вот команда, которую выполняет Сьюзен, работая в операционной системе Microsoft Windows:

mxmlc. exe — use-network=fa1se — file-specs c:\projects\ca1endar\Calendar. as — output с:\projects\ca1endar\bin\Calendar. swf

Компиляция локального SWF-файла с поддержкой сети

Дориан разрабатывает видеоигру race. swf для сайта своей компании. Посетители сайта могут играть в эту игру и отправлять свои лучшие результаты в режиме онлайн. Дориан хочет сделать загружаемую версию своей игры, в которую можно будет играть при отсутствии подключения к Интернету. Когда у пользователя отсутствует подключение к Интернету, загружаемая версия игры будет сохранять лучшие результаты в совместно используемом локальном объекте и отправит их на сервер, как только пользователь подключится к Интернету.

Руководство по actionscript. часть 3, стр. 089

Дориан знает, что большая часть посетителей предпочитает не запускать исполняемые файлы из неизвестных источников, поэтому она решает сделать свою игру в виде загружаемого SWF-файла, а не в виде исполняемого файла проектора. Чтобы позволить игре, выполняемой в виде локального SWF-файла, подключаться к серверу, на котором хранятся лучшие результаты, Дориан компилирует приложение race. swf с установленным в значение true флагом компилятора — use-network.

Чтобы установить флаг — use-network, Дориан использует тот же механизм, который использовала Сьюзен в предыдущем сценарии с приложением calendar. swf, но при установке флага — use-network вместо значения false указывает значение true. При использовании среды разработки Flash Дориан выбирает для параметра Local playback security (Безопасность локального воспроизведения) значение Access network only (Обращение только к сети) вместо значения Access local files only (Обращение только к локальным файлам).

Установка локального доверия

Колин создает инструмент администрирования admin. swf для сокетного приложения-сервера. Файл admin. swf предназначен для работы либо в том же домене, в котором находится сокетный сервер, либо в локальной файловой системе администратора этого сервера. Инструмент администрирования подключается к удаленному сокетному серверу и не загружает никакие локальные файлы, поэтому Колин компилирует приложение как локальный SWF-файл с поддержкой сети.

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

В процессе разработки Колин вдруг осознает, что, поскольку файл admin. swf является локальным SWF-файлом с поддержкой сети, другие локальные SWF-файлы с поддержкой сети, находящиеся на том же компьютере, на котором выполняется приложение admin. swf, смогут загрузить это приложение и прочитать пароль из текстового поля!

Чтобы закрыть эту потенциальную брешь в безопасности, Колин принимает разумное решение: файлу admin. swf должен присваиваться тип безопасности песочницы «локальный с установленным доверием». В результате другие локальные SWF-файлы с поддержкой сети не смогут прочитать значение из текстового поля для ввода пароля.

Чтобы превратить файл admin, swf в локальный SWF-файл с установленным доверием, Колин создает инсталлятор, который устанавливает доверие для местоположения файла admin. swf путем помещения конфигурационного файла в директорию Global Flash Player Trust на локальной машине. В соответствии с официальным форматом языка конфигурационный файл содержит одну-единственную текстовую строку: местоположение файла admin. swf в локальной файловой системе. В итоге, когда приложение Flash Player загружает файл admin. swf из указанного местоположения, этому файлу присваивается тип безопасности песочницы «локальный с установленным доверием».

Полную информацию, посвященную созданию и управлению устанавливающими доверие конфигурационными файлами, можно найти в разделе Programming ActionScript 3.0 > Flash Player APIs > Flash Player Security > Overview of permission controls > Administrative user controls документации корпорации Adobe.

Колин также понимает, что пользователи инструмента администрирования могут захотеть переместить файл admin. swf в любое произвольное местоположение. Чтобы позволить пользователю перемещать файл admin. swf в новое местоположение, не теряя статус «локальный с установленным доверием», Колин включает инструкцию в документацию по инструменту администрирования (см. врезку выше).

Описанный сценарий с инструментом администрирования сокетного сервера демонстрирует два доступных механизма установления доверия для локального SWF-файла: конфигурационные файлы на компьютере, на котором выполняется приложение Flash Player (обеспечиваемые инсталлятором Колина), и инструмент Flash Player Settings Manager (к которому обращается пользователь). Подробное описание инструмента Flash Player Settings Manager можно найти в разделе Programming ActionScript 3.0 > Flash Player APIs > Flash Player Security > Overview of permission controls > User controls документации корпорации Adobe.

Перенос файла admin. swf в произвольное местоположение. Перед тем как перенести файл admin. swf в новое местоположение, не забудьте зарегистрировать его как локальный SWF-файл с установленным доверием, выполнив такую последовательность действий.

1. Откройте инструмент Flash Player Settings Manager, загрузив в браузере следующую страницу: http://www. macromedia. com/support/documentation/en/flashplayer/ help/settings_manager04.html.

2. Щелкните кнопкой мыши на ссылке Edit locations (Управление местоположениями) параметра Always trust files in these locations (Всегда доверять файлам в следующих местоположениях) в разделе Global Security Settings (Глобальные настройки безопасности) и выберите команду Add location (Добавить местоположение).

3. Введите или выберите местоположение, для которого вы хотите установить доверие.



Полезные ссылки
Случайные записи
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.76
  • 17.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.5
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.145
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 085
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.109
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.130
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.140
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 087
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 048
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 136
  • 06.04.2010">Инструменты и сервисы для оптимизации графики
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.67
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.138
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 008
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 029
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...