Obszary izolowaneFlash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje Komputery klienckie mogą uzyskiwać poszczególne pliki zawierające kod, treści i dane z różnych źródeł, takich jak zewnętrzne witryny WWW, lokalny system plików lub zainstalowana aplikacja AIR. Środowiska wykonawcze Flash Player i AIR indywidualnie przypisują pliki kodu oraz pozostałe zasoby, takie jak obiekty współużytkowane, bitmapy, dźwięki, wideo i pliki danych, do obszarów izolowanych zabezpieczeń w oparciu o ich pochodzenie w chwili ładowania. W poniższych sekcjach opisano egzekwowane przez środowiska wykonawcze reguły rządzące dostępem kodu i treści w danym obszarze izolowanym do zasobów zewnętrznych. Więcej informacji na temat zabezpieczeń w programie Flash Player zawiera temat „Security” w serwisie Flash Player Developer Center pod adresem www.adobe.com/go/devnet_security_pl. Zdalne obszary izolowaneŚrodowiska wykonawcze Flash Player i AIR przypisują zasoby (w tym pliki SWF) pochodzące z Internetu do odrębnych obszarów izolowanych, które odpowiadają domenom pochodzenia tych zasobów. Na przykład zasoby załadowane z domeny example.com będą umieszczane w innym obszarze izolowanym niż zasoby załadowane z domeny foo.org. Domyślnie pliki te mogą mieć autoryzację do odstępu do dowolnych zasobów z własnego serwera. Zdalne pliki SWF mogą mieć uprawnienia do dostępu do danych dodatkowych z innych domen za pośrednictwem jawnych uprawnień witryny i autora, takich jak pliki strategii URL oraz metoda Security.allowDomain(). Szczegółowe informacje zawarto w sekcjach Internetowe elementy sterujące (pliki zasad) oraz Mechanizmy nadzoru programistów. Zdalne pliki SWF nie mogą ładować ani plików ani innych zasobów lokalnych. Więcej informacji na temat zabezpieczeń w programie Flash Player zawiera temat „Security” w serwisie Flash Player Developer Center pod adresem www.adobe.com/go/devnet_security_pl. Lokalne obszary izolowanePlik lokalny jest to dowolny plik, do którego istnieje odwołanie za pośrednictwem protokołu file: lub ścieżki UNC (ang. Universal Naming Convention). Lokalne pliki SWF trafiają do jednego z czterech lokalnych obszarów izolowanych:
Komunikacja między obszarem izolowanym lokalnym z siecią a lokalnym z systemem plików, a także komunikacja między obszarem izolowanym lokalnym z systemem plików a obszarami zdalnymi jest ściśle wzbroniona. Zezwolenia na taką komunikację nie można przyznać za pośrednictwem aplikacji działającej w programie Flash Player, nie może też tego dokonać użytkownik ani administrator. Przesyłanie skryptów w dowolnym kierunku między lokalnymi plikami HTML a lokalnymi plikami SWF — na przykład, za pośrednictwem klasy ExternalInterface — wymaga, aby zarówno plik HTML jak i plik SWF należały do obszaru izolowanego lokalnego zaufanego. Jest to spowodowane faktem, że lokalne modele zabezpieczeń dla przeglądarek różnią się od lokalnego modelu zabezpieczeń programu Flash Player. Pliki SWF w obszarze izolowanym lokalnym z siecią nie mogą ładować plików SWF znajdujących sie w obszarze izolowanym lokalnym z systemem plików. Pliki SWF w obszarze izolowanym lokalnym z systemem plików nie mogą ładować plików SWF znajdujących sie w obszarze izolowanym lokalnym z siecią. Obszar izolowany aplikacji AIRW środowisku wykonawczym Adobe AIR model obszarów izolowanych programu Flash Player został uzupełniony o dodatkowy obszar izolowany, nazywany obszarem izolowanym aplikacji. Do obszaru izolowanego aplikacji ładowane są pliki zainstalowane jako część aplikacji AIR. Wszelkie inne pliki ładowane przez aplikację podlegają takim samym ograniczeniom, jakie obowiązują w zwykłym modelu zabezpieczeń programu Flash Player. Podczas instalowania aplikacji wszystkie pliki zawarte w pakiecie AIR zostają zainstalowane na komputerze użytkownika, w katalogu aplikacji. Programiści mogą odwoływać się do tego katalogu w kodzie za pośrednictwem schematu URL app:/ (patrz Schematy URI). Wszystkie pliki z drzewa katalogów aplikacji zostają przypisane do obszaru izolowanego aplikacji po uruchomieniu aplikacji. Treść obszaru izolowanego aplikacji ma pełne uprawnienia, jakie posiada aplikacja AIR, łącznie z możliwością oddziaływania z lokalnym systemem plików. Podczas działania wiele aplikacji AIR korzysta tylko z tych lokalnie zainstalowanych plików. Jednak aplikacje AIR nie są ograniczone tylko do plików w katalogu aplikacji — mogą załadować dowolny typ pliku z dowolnego źródła. Łącznie z plikami lokalnymi na komputerze użytkownika, a także plikami z dostępnych źródeł zewnętrznych, np. w lokalnej sieci lub w Internecie. Typy plików nie mają wpływu na zabezpieczenia; załadowane pliki HTML mają te same uprawnienia, co załadowane pliki SWF z tego samego źródła. Treść bezpiecznego obszaru izolowanego aplikacji ma dostęp do interfejsów API AIR, do których nie ma dostępu treść innych obszarów izolowanych. Na przykład: właściwość air.NativeApplication.nativeApplication.applicationDescriptor, która zwraca treść pliku deskryptora aplikacji dla aplikacji, ma dostęp wyłącznie do treści bezpiecznego obszaru izolowanego aplikacji. Innym przykładem interfejsu API o ograniczonych uprawnieniach jest klasa FileStream, która zawiera metody odczytu i zapisu w lokalnym systemie plików. Elementy interfejsu API ActionScript, które są dostępne wyłącznie dla treści bezpiecznego obszaru izolowanego aplikacji, są oznaczone logo AIR w Skorowidzu języka ActionScript 3.0 dla platformy Adobe Flash. Użycie tych interfejsów API w innych bezpiecznych obszarach izolowanych powoduje wyjątek SecurityError w środowisku wykonawczym. W przypadku treści HTML (w obiekcie HTMLLoader) wszystkie interfejsy API AIR JavaScript (dostępne za pośrednictwem właściwości window.runtime lub obiektu air podczas korzystania z pliku AIRAliases.js) są dostępne dla treści bezpiecznego obszaru izolowanego aplikacji. Treść HTML w innym obszarze izolowanym nie ma dostępu do właściwości window.runtime, dlatego ta treść nie może uzyskać dostępu do interfejsów API środowisk Flash Player i AIR. Treść wykonywana w obszarze izolowanym aplikacji AIR podlega następującym dodatkowym ograniczeniom:
Ograniczenia obowiązujące dla kodu JavaScript w środowisku AIRZawartość JavaScript w obszarze izolowanym niezwiązanym z aplikacją może — w odróżnieniu od zawartości obszaru izolowanego aplikacji — wywołać funkcję eval() w celu wykonania kodu wygenerowanego w sposób dynamiczny w dowolnej chwili. Obowiązują jednak pewne ograniczenia dotyczące wykonywania kodu JavaScript w obszarze izolowanym innym niż obszar aplikacji w środowisku AIR. Między innymi:
Szczegółowe informacje zawiera sekcja Ograniczenia kodu dotyczące treści różnych obszarów izolowanych. Ustawianie typu obszaru izolowanego lokalnych plików SWFUżytkownik końcowy lub administrator komputera może zdefiniować lokalny plik SWF jak zaufany, zezwalając mu na ładowanie danych ze wszystkich domen, zarówno lokalnych jak i sieciowych. Ustawień tych można dokonać w katalogach Global Flash Player Trust i User Flash Player Trust. Więcej informacji zawarto w sekcjach Elementy sterujące dla administratorów i Mechanizmy nadzoru użytkowników. Więcej informacji na temat lokalnych obszarów izolowanych zawiera sekcja Lokalne obszary izolowane. Adobe Flash ProfessionalMożliwe jest skonfigurowanie pliku SWF dla obszaru izolowanego lokalnego z systemem plików przez ustawienie opcji publikowania dokumentu w narzędziu do tworzenia treści. Adobe FlexMożliwe jest skonfigurowanie pliku SWF dla obszaru izolowanego lokalnego z systemem plików przez ustawienie flagi use-network w kompilatorze Adobe Flex. Więcej informacji zawiera sekcja „About the application compiler options” w podręczniku Building and Deploying Adobe Flex 3 Applications. Właściwość Security.sandboxTypeAutor pliku SWF może użyć statycznej właściwości tylko do odczytu Security.sandboxType do określenia typu obszaru izolowanego, do którego środowisko Flash Player lub AIR przypisało plik SWF. Klasa Security obejmuje stałe reprezentujące możliwe wartości właściwości Security.sandboxType, jak poniżej:
|
|