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

В предыдущем списке и на протяжении всей этой главы будут использоваться следующие термины.

Распространитель ресурса — сторона, которая занимается распространением данного ресурса. Обычно это оператор сервера, например администратор сайта или сокетного сервера.

Создатель ресурса — сторона, которая фактически является автором ресурса. Для SWF-файлов создателем ресурса является разработчик на языке ActionScript, который скомпилировал данный SWF-файл.

Пользователь — пользователь компьютера, на котором выполняется приложение Flash Player.

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

В этой главе мы рассмотрим ограничения безопасности одной конкретной среды Flash: приложения Flash Player (версии, реализованной в виде модуля расширения браузера, и автономной версии). Информацию об ограничениях безопасности, налагаемых другими средами выполнения Flash (например, приложениями Adobe AIR и Flash Lite), можно найти в документации корпорации Adobe.

Чего нет в этой главе

Перед тем как перейти к изучению материала, проясним один момент: безопасность — это очень обширная тема. Всестороннее рассмотрение безопасности приложения Flash Player выходит за рамки этой книги. Более того, в этой главе рассматриваются функции безопасности, предназначенные лишь для защиты пользователей Flash-содержимого, но не обсуждаются вопросы разработки защищенных приложений, например сайтов для электронной коммерции. Гораздо более полную информацию о безопасности, включая вопросы разработки защищенных приложений, например использование протокола Secure Sockets Layer (SSL), создание собственных алгоритмов шифрования и защиту данных, передаваемых по протоколу RTMP, можно найти в таких ключевых ресурсах, как:

? документация корпорации Adobe, раздел Programming ActionScript 3.0 > Flash Player APIs > Flash Player Security;

? «Центр по вопросам безопасности» (Security Topic Center) корпорации Adobe: http. V/www. adobe. com/devnet/security/;

? технический документ корпорации Adobe, посвященный безопасности: http:// www. adobe. com/go/fp9_0_security;

? статья «Security Changes in-Flash Player 8» Денеба Мекеты (Deneb Meketa), в основном посвященная локальной безопасности: http://www. adobe. com/devnet/ flash/articles/fplayer8_security. html;

? статья «Security Changes in Flash Player 7» Денеба Мекеты, в основном посвященная файлам политики безопасности: http://www. adobe. com/devnet/flash/ articles/fplayer_security. html;

? интерактивная справка приложения Flash Player корпорации Adobe, где описываются настройки безопасности, доступные пользователям: http://www. adobe. com/support/documentation/en/flashplayer/help/index. html.

Теперь посмотрим, как безопасность приложения Flash Player влияет на загрузку содержимого и на доступ к внешним данным.

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

Локальная область действия, удаленная область действия и удаленные регионы

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

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

ложений. Локальное местоположение — это любое местоположение, к которому может обратиться пользователь компьютера, выполняющего приложение Flash Player либо с помощью протокола file: (обычно применяется для обращения к локальной файловой системе), либо с помощью пути, соответствующему универсальному соглашению об именах (UNC — universal naming convention) (обычно применяется для обращения к компьютерам в локальной сети).

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

? доменом Интернета;

? поддоменом Интернета;

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

Таким образом, в соответствии с предыдущим списком:

? sitea. com и siteb. com, games. example. com и finances. example. com, 192.150.14.120 и 205.166.76.26 — это разные удаленные регионы;

? 192.150.18.117 и adobe. com — это разные удаленные регионы, несмотря на то что IP-адрес 192.150.18.117 закреплен за доменом adobe. com (поскольку для приложения Flash Player IP-адреса, заданные в числовом виде, и их эквивалентные доменные имена считаются разными).

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

0-

Типы безопасности песочниц

Среда выполнения Flash присваивает статус безопасности, называемый типом безопасности песочницы, каждому SWF-файлу, открываемому или загружаемому в приложения Flash Player. Существует четыре возможных типа безопасности песочницы: удаленный (remote), локальный с поддержкой файловой системы (local — with-filesystem), локальный с поддержкой сети (local-with-networking) и локальный с установленным доверием (local-trusted). Каждый тип безопасности песочницы определяет специальный набор правил, который регламентирует возможности SWF-файла по выполнению операций с внешними источниками данных. В частности, к операциям с внешними источниками данных, которые потенциально могут быть запрещены типами безопасности песочниц, относятся:

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

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

? кросс-скриптинг;

? загрузка данных;

? отправка данных на внешний адрес URL;

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

? обращение к совместно используемым локальным объектам;

? выгрузка и загрузка файлов, выбранных пользователем;

? скриптинг HTML-страницы из SWF-файла и наоборот;

? подключение к каналу LocalConnection.

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

В этой главе мы увидим, как каждый из перечисленных типов безопасности песочниц влияет на первые пять типов операций с внешними источниками данных из предыдущего списка. Чтобы узнать, как типы безопасности песочниц влияют на оставшиеся типы операций с внешними источниками данных, обратитесь к документации корпорации Adobe — раздел Programming ActionScript 3.0 > Flash Player APIs > Flash Player Security.

Стоит отметить, что, если операция завершилась неудачно из-за ограничений безопасности Flash Player, среда Flash сгенерирует либо ошибку SecurityError, либо выполнит диспетчеризацию события SecurityErrorEvent. SECURITY ERROR. Более подробную информацию по обработке ошибок безопасности можно найти в разд. «Обработка нарушений безопасности» ближе к концу этой главы.

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

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

? установлено ли явное доверие для SWF-файла (говорят, что для SWF-файла установлено явное доверие, если этот файл открыт из надежного локального местоположения; дополнительную информацию можно найти далее, в подразд. «Установка локального доверия» разд. «Выбор локального типа безопасности песочницы»).

Всем SWF-файлам из локальной области действия, для которых установлено явное доверие, присваивается тип безопасности песочницы «локальный с установленным доверием». Подобным образом, для исполняемых файлов проектора (то есть отдельных файлов, включающих SWF-файл и определенную версию приложения Flash Player) доверие установлено всегда.

Если для SWF-файлов из локальной области действия не установлено явное доверие, то им присваивается либо тип безопасности песочницы «локальный с поддержкой сети» (для SWF-файлов, которые были откомпилированы с поддержкой сети),

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

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

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

^ I Чтобы определить тип безопасности песочницы SWF-файла на этапе выполнения, исполь-м$ л — 3УЙте значение переменной flash. system. Security. sandboxType внутри этого SWF-файла.

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

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

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

Обобщения в вопросах безопасности вредны

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

Руководство по 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, а затем порядок действий системы безопасности при предотвращении попытки хакера завладеть целевыми данными.



Полезные ссылки
Случайные записи
  • 12.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.111
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 048
  • 04.03.2011">Руководство по actionscript. часть 5, стр. 031
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.133
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 150
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 118
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 101
  • 26.07.2011">Ноутбук ACER AS7520G-502G16Mi
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 093
  • 14.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.78
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 014
  • 20.07.2012">YouTube представил инструмент для размытия лиц
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 069
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 135
  • 28.02.2011">Руководство по actionscript. часть 6, стр. 016
Опрос

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

View Results

Loading ... Loading ...