Справочник по языку ActionScript 3.0 и компонентам
Home | Все пакеты | Все классы | Элементы языка | Указатель | Приложения | Сокращения | Кадры
Security
 
Пакетflash.system
Классpublic final class Security
НаследованиеSecurity Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Класс Security позволяет задать способ взаимодействия содержимого в различных доменах.

Посмотреть примеры



Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  exactSettings : Boolean
[статические] Определяет, каким образом проигрыватель Flash Player или приложение AIR выбирает домен для работы с такими параметрами Flash Player, как разрешения на доступ к камере и микрофону, квоты хранилища, а также параметры хранения постоянных общих объектов.
Security
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  sandboxType : String
[статические] [только для чтения] Показывает тип изолированной программной среды безопасности, в которой работает вызывающий файл.
Security
Общедоступные методы
 МетодОпределено
  
[статические] Позволяет SWF-файлам в указанных доменах обращаться к объектам и переменным в SWF-файле, содержащем вызов allowDomain().
Security
  
[статические] Позволяет SWF- и HTML-файлам в определенных доменах обращаться к объектам и переменным в вызывающем SWF-файле, размещенном на сервере с использованием протокола HTTPS.
Security
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
[статические] Загружает файл политики для URL из расположения, заданного параметром url.
Security
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
showSettings(panel:String = "default"):void
[статические] Отображает панель параметров безопасности в проигрывателе Flash Player.
Security
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Общедоступные константы
 Константа Определено
  AIR-only APPLICATION : String = "application"
[статические] Файл работает в приложении AIR и был установлен с пакетом (файлом AIR) для этого приложения.
Security
  LOCAL_TRUSTED : String = "localTrusted"
[статические] Файл является локальным файлом, который сделан доверенным с помощью диспетчера настроек проигрывателя Flash Player или файла конфигурации FlashPlayerTrust.
Security
  LOCAL_WITH_FILE : String = "localWithFile"
[статические] Файл является локальным файлом, не является доверенным для пользователя и не публиковался с сетевым наименованием.
Security
  LOCAL_WITH_NETWORK : String = "localWithNetwork"
[статические] Файл является локальным SWF-файлом, не является доверенным для пользователя и публиковался с сетевым наименованием.
Security
  REMOTE : String = "remote"
[статические] Файл взят с URL-адреса в Интернете и работает в соответствии с правилами изолированной программной среды на основе домена.
Security
Сведения о свойстве
exactSettingsсвойство
exactSettings:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Определяет, каким образом проигрыватель Flash Player или приложение AIR выбирает домен для работы с такими параметрами Flash Player, как разрешения на доступ к камере и микрофону, квоты хранилища, а также параметры хранения постоянных общих объектов. Можно установить для exactSettings значение false, чтобы SWF-файл использовал те же параметры, которые применялись в проигрывателе Flash Player 6.

В Flash Player 6 домен, используемый для этих параметров проигрывателя, выбирался исходя из конечной порции домена SWF-файла. Если домен SWF-файла включает больше двух сегментов, например www.example.com, первый сегмент домена ("www") удаляется, и используется оставшаяся часть домена: example.com. Так, в Flash Player 6 и www.example.com и store.example.com используют example.com в качестве домена для этих параметров. Подобным образом, и www.example.co.uk и store.example.co.uk используют example.co.uk в качестве домена для параметров. В Flash Player 7 и более поздних версиях параметры проигрывателя по умолчанию выбираются в соответствии с точным доменом SWF- файла. Например SWF-файл с www.example.com будет использовать параметры проигрывателя для www.example.com, а SWF-файл с store.example.com — отдельные параметры для store.example.com.

Когда Security.exactSettings имеет значение true, Flash Player использует точные домены для параметров проигрывателя. Если задать значение false, Flash Player использует параметры домена, как в Flash Player 6. По умолчанию exactSettings имеет значение true. Если требуется задать для exactSettings значение не по умолчанию, это необходимо сделать до появления событий, требующих выбора параметров проигрывателя Flash Player, таких как использование камеры или микрофона или получение постоянного общего объекта.

Если ранее был опубликован SWF-файл версии 6, из которого были созданы постоянные общие объекты, и теперь эти объекты необходимо получить из этого SWF-файла после перехода к версии 7 или более поздней или из другого SWF-версии 7 или более поздней, необходимо задать для Security.exactSettings значение false перед вызовом метода SharedObject.getLocal().


Реализация
    public static function get exactSettings():Boolean
    public function set exactSettings(value:Boolean):void

Выдает
SecurityError — Проигрыватель Flash Player или приложение AIR уже использовало значение exactSettings, по крайней мере однажды, когда принималось решение о параметрах проигрывателя.
sandboxTypeсвойство 
sandboxType:String  [только для чтения]

Версии среды выполнения: AIR 1.0, Flash Player 9

Показывает тип изолированной программной среды безопасности, в которой работает вызывающий файл.

Для Security.sandboxType можно устанавливать одно из следующих значений.

Дополнительные сведения о безопасности см. в следующих ресурсах.


Реализация
    public static function get sandboxType():String

См. также

Сведения о методе
allowDomain()метод
public static function allowDomain(... domains):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Позволяет SWF-файлам в указанных доменах обращаться к объектам и переменным в SWF-файле, содержащем вызов allowDomain().

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

Если два SWF-файла размещаются на одном домене, например http://mysite.com/swfA.swf и http://mysite.com/swfB.swf, то swfA.swf может анализировать и модифицировать переменные, объекты, свойства, методы и прочее в swfB.swf и наоборот. Это называется выполнением сценариев между роликами или выполнением перекрестных сценариев.

Если два SWF-файла находятся в разных доменах, например http://siteA.com/swfA.swf и http://siteB.com/siteB.swf, то по умолчанию Flash Player не позволяет swfA.swf выполнять сценарии, связанные с swfB.swf, и наоборот. SWF-файл передает данные SWF-файлам из других доменов путем вызова Security.allowDomain(). Это называется выполнением междоменных сценариев. Вызывая Security.allowDomain("siteA.com"), siteB.swf дает siteA.swf разрешение на выполнение сценариев.

Дополнительные сведения о безопасности см. в следующих ресурсах.

Параметры

... domains — Одна или несколько строк, а также объектов URLRequest, указывающие на домены, из которых требуется разрешить доступ. Можно указать особый домен "*", чтобы разрешить доступ из всех доменов.

Указание домена "*" является единственным способом разрешения доступа к нелокальным SWF-файлам из локальных SWF-файлов, опубликованных с помощью инструмента разработки Adobe Flash с установленным для параметра "Безопасность локального воспроизведения" режимом "Предоставлен доступ только к сети".


Выдает
SecurityError — При вызове этого метода из кода в изолированной среде безопасности приложения AIR выдается исключение SecurityError. Содержимое за пределами изолированной среды безопасности приложения не может выполнять перекрестные сценарии для находящегося в ней содержимого.

См. также

allowInsecureDomain()метод 
public static function allowInsecureDomain(... domains):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Позволяет SWF- и HTML-файлам в определенных доменах обращаться к объектам и переменным в вызывающем SWF-файле, размещенном на сервере с использованием протокола HTTPS.

В проигрывателе Flash Player этот метод allowInsecureDomain() предусмотрен для увеличения гибкости, но вызывать его не рекомендуется. Размещение файлов с использованием HTTPS обеспечивает несколько факторов защиты для вас и ваших пользователей, а вызов метода allowInsecureDomain ослабляет один из этих факторов.

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

Этот метод работает так же, как и Security.allowDomain(), но, помимо этого, он позволяет выполнять операции, в которых вызываемая сторона загружается через протокол HTTPS, а вызывающая — нет. В Flash Player 7 и более поздних версиях файлам, загружаемым не через HTTPS, не разрешается выполнение перекрестных сценариев с файлами, загружаемым через HTTPS. Метод allowInsecureDomain() снимает это ограничение, когда его использует вызываемый SWF-файл с HTTPS.

Используйте allowInsecureDomain() только для разрешения выполнения сценариев файлов без HTTPS для файлов с HTTPS. Используйте этот метод для разрешения сценариев, когда вызывающий файл без HTTPS и вызываемый файл с HTTPS находятся на одном домене, например, если SWF-файл с адресом http://mysite.com хочет выполнить сценарий для SWF-файла с адресом https://mysite.com. Не используйте этот метод для разрешения сценариев между файлами без HTTPS, между файлами с HTTPS, а также для выполнения сценариев файла с HTTPS для файла без HTTPS. В таких ситуациях следует использовать метод allowDomain().

Дополнительные сведения о безопасности см. в следующих ресурсах.

Параметры

... domains — Одна или несколько строк, а также объектов URLRequest, указывающие на домены, из которых требуется разрешить доступ. Можно указать особый домен "*", чтобы разрешить доступ из всех доменов.


Выдает
SecurityError — При вызове этого метода из кода в изолированной среде безопасности приложения AIR выдается исключение SecurityError. Содержимое за пределами изолированной среды безопасности приложения не может выполнять перекрестные сценарии для находящегося в ней содержимого.

См. также

loadPolicyFile()метод 
public static function loadPolicyFile(url:String):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Загружает файл политики для URL из расположения, заданного параметром url. Приложение Adobe AIR и проигрыватель Flash Player используют файлы политик, чтобы определить, можно ли разрешать приложениям загружать данные с других серверов, кроме того, на котором они находятся.

По умолчанию Flash Player или AIR выполняет поиск файлов политик только в определенных местах на сервере, к которому выполнен запрос на загрузку данных. С помощью метода Security.loadPolicyFile() проигрыватель Flash Player или приложение AIR может загружать файлы политик из произвольно выбранных местоположений, как это показано в следующем примере.

     Security.loadPolicyFile("http://www.example.com/sub/dir/pf.xml");
     

Здесь проигрывателю Flash Player или приложению AIR предписывается извлечь файл политики по указанному URL-адресу. Любые разрешения, выдаваемые файлом политики, расположенном в определенном каталоге, будут действовать применительно ко всему содержимому, находящемуся на том же уровне или ниже в виртуальной иерархии каталогов данного сервера.

Например, в предыдущем коде не выдают исключение следующие строки:

 import flash.net.*;
     var request:URLRequest = new URLRequest("http://www.example.com/sub/dir/vars.txt");
     var loader:URLLoader = new URLLoader();
     loader.load(request);
     
     var loader2:URLLoader = new URLLoader();
     var request2:URLRequest = new URLRequest("http://www.example.com/sub/dir/deep/vars2.txt");
     loader2.load(request2);
     

Однако следующий код выдает исключение по безопасности:

 import flash.net.*;
     var request3:URLRequest = new URLRequest("http://www.example.com/elsewhere/vars3.txt");
     var loader3:URLLoader = new URLLoader();
     loader3.load(request3);
     

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

Нельзя загружать файлы политик, обслуживаемые через общепринятые зарезервированные порты. Полный список заблокированных портов см. в разделе "Ограничение сетевых API-интерфейсов" в главе "Безопасность" книги Программирование на ActionScript 3.0.

Использование протокола xmlsocket вместе с определенным номером порта позволяет извлекать файл политики непосредственно с сервера XMLSocket, как показано в следующем примере. Описанное выше ограничение не распространяется на подключения через сокеты.

     Security.loadPolicyFile("xmlsocket://foo.com:414");
     

Можно запретить использование SWF-файлом этого метода путем установки параметра allowNetworking для тегов object и embed на странице HTML, содержащей SWF-содержимое.

Дополнительные сведения о безопасности см. в следующих ресурсах.

Параметры

url:String — URL-адрес загружаемого файла политики.

showSettings()метод 
public static function showSettings(panel:String = "default"):void

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Отображает панель параметров безопасности в проигрывателе Flash Player. Этот метод не применяется к содержимому в Adobe AIR; его вызов в приложении AIR игнорируется.

Параметры

panel:String (default = "default") — Значение из класса SecurityPanel, указывающее, какую панель параметров конфиденциальности требуется отображать. Если этот параметр пропущен, используется SecurityPanel.DEFAULT.

См. также

Сведения о константе
AIR-only APPLICATIONКонстанта
public static const APPLICATION:String = "application"

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0

Файл работает в приложении AIR и был установлен с пакетом (файлом AIR) для этого приложения. Это содержимое включено в каталог ресурсов приложения AIR (в котором установлено содержимое приложения).

См. также

LOCAL_TRUSTEDКонстанта  
public static const LOCAL_TRUSTED:String = "localTrusted"

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

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

См. также

LOCAL_WITH_FILEКонстанта  
public static const LOCAL_WITH_FILE:String = "localWithFile"

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

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

См. также

LOCAL_WITH_NETWORKКонстанта  
public static const LOCAL_WITH_NETWORK:String = "localWithNetwork"

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

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

См. также

REMOTEКонстанта  
public static const REMOTE:String = "remote"

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Файл взят с URL-адреса в Интернете и работает в соответствии с правилами изолированной программной среды на основе домена.

См. также

Примеры Как пользоваться примерами
SecurityExample.as

В следующем примере показано, как событие click для объекта Sprite может использоваться для отображения панели параметров локального хранилища в окне параметров проигрывателя Flash Player. К рабочей области добавляется оранжевый прямоугольник с помощью методаdraw(). В методе draw(), добавляется прослушиватель события click с именем clickHandler(), который драгирует на события click, вызывая открытие панели параметров локального хранилища в проигрывателе Flash Player.
package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.events.*;
    import flash.system.Security;
    import flash.system.SecurityPanel;

    public class SecurityExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 100;

        public function SecurityExample() {
            draw();
        }

        private function draw():void {
            var child:Sprite = new Sprite();
            child.graphics.beginFill(bgColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            child.buttonMode = true;

            var label:TextField = new TextField();
            label.text = "settings";
            label.selectable = false;
            label.mouseEnabled = false;
            child.addChild(label);

            child.addEventListener(MouseEvent.CLICK, clickHandler);
            addChild(child);
        }

        private function clickHandler(event:MouseEvent):void {
            Security.showSettings(SecurityPanel.LOCAL_STORAGE);
        }
    }
}