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

Однако из этого утверждения существует множество важных исключений, включая следующие:

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

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

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

? для обращения к пользовательской камере и микрофону требуется разрешение пользователя;

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

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

В этой главе не рассматриваются абсолютно все ограничения безопасности, нала-4 щ гаемые средой выполнения Flash. Чтобы определить ограничения, которые налагает 3? среда Flash на операции, не рассматриваемые в этой главе, обратитесь к разделам, посвященным данным операциям, в справочнике по языку ActionScript корпорации Adobe.

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

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

Для многих разработчиков первое знакомство с системой безопасности языка ActionScript происходит в тот момент, когда выполняемая операция блокируется из соображений безопасности. В этом разделе будет рассказано о четырех наиболее часто блокируемых внешних операциях: загрузке содержимого, обращении к содержимому в виде данных, кросс-скриптинге и загрузке данных. После этого мы рассмотрим условия, при которых происходит блокировка данных распространенных операций.

Загрузка содержимого

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

Методы языка ActionScript, относящиеся к операциям «загрузки содержимого» с точки зрения безопасности, перечислены в табл. 19.1.

Таблица 19.1. Операции загрузки содержимого

Метод загрузки содержимого Тип содержимого Конкретные форматы файлов, поддерживаемые приложением Flash Player 9

flash. display. Loader. load() Изображение, файл Adobe Flash JPEG, GIF, PNG, SWF

flash. media. Sound. load() Аудио MP3

flash. net. NetStream. play() Прогрессивное видео FLV

Для удобства в этой главе время от времени используется термин «ресурсы содержимого» в отношении ресурсов, загруженных с помощью одного из методов, представленных в табл. 19.1. Стоит отметить, однако, что внешняя операция становится операцией загрузки содержимого благодаря конкретному методу, используемому для загрузки, а не типу файла данного ресурса. Например, загрузка изображения в формате JPEG с помощью метода экземпляра load ( ) класса Loader считается операцией загрузки содержимого, однако загрузка того же JPEG-изображе-ния через бинарный сокет или с помощью метода экземпляра load ( ) класса URLLoader уже не считается операцией загрузки содержимого. Это отличие существенно, поскольку к различным категориям операций применяются различные правила безопасности.

Руководство по 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 для сайта своей компании. Посетители сайта могут играть в эту игру и отправлять свои лучшие результаты в режиме онлайн. Дориан хочет сделать загружаемую версию своей игры, в которую можно будет играть при отсутствии подключения к Интернету. Когда у пользователя отсутствует подключение к Интернету, загружаемая версия игры будет сохранять лучшие результаты в совместно используемом локальном объекте и отправит их на сервер, как только пользователь подключится к Интернету.



Полезные ссылки
Случайные записи
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 034
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 105
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 076
  • 05.08.2011">МФУ от Hewlett-Packard – качество и надежность
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 024
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.52
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.13
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.103
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 012
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 037
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 016
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.35
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.120
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 074
  • 23.08.2011">Gigabyte Whale: супердешевый Android
Опрос

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

View Results

Loading ... Loading ...