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