SäkerhetssandlådorFlash Player 9 och senare, Adobe AIR 1.0 och senare Klientdatorer kan hämta individuella filer som innehåller kod, innehåll och data från ett antal källor, till exempel externa webbplatser, från ett lokalt filsystem eller från ett installerat AIR-program. I Flash Player- och AIR-körtider tilldelas kodfiler och andra resurser enskilt till säkerhetssandlådor utifrån deras ursprung när de läses in. Exempel på resurser är delade objekt, bitmappar, ljud, video och datafiler. I följande avsnitt beskrivs de regler som upprätthålls av körtiderna och som styr vad en kod eller ett innehåll som körs inom en given sandlåda kan komma åt. Mer information om säkerhet i Flash Player finns i avsnittet om säkerhet på Player Developer Center på www.adobe.com/go/devnet_security_en. FjärrsandlådorI Flash Player- och AIR-körtiderna klassificeras resurser (även SWF-filer) från Internet i separata sandlådor som motsvarar deras ursprungsdomän. Resurser som läses in från example.com placeras till exempel i en annan säkerhetssandlåda än resurser som läses in från foo.org. Som standard har dessa filer åtkomst till alla resurser från den egna servern. Externa SWF-filer kan ges åtkomst till ytterligare data från andra domäner via specifika webbplats- och författarbehörigheter, t.ex. URL-principfiler och metoden Security.allowDomain(). Mer information finns i Webbplatsinställningar (principfiler) och Författarinställningar (för utvecklare). Externa SWF-filer kan inte läsa in några lokala filer eller resurser. Mer information om säkerhet i Flash Player finns i avsnittet om säkerhet på Player Developer Center på www.adobe.com/go/devnet_security_en. Lokala sandlådorLokala filer beskriver filer som refereras via protokollet file: eller en UNC-sökväg (Universal Naming Convention). Lokala SWF-filer placeras i en av fyra lokala sandlådor:
Kommunikation mellan sandlådorna lokal-med-nätverk och lokal-med-filsystem, liksom kommunikation mellan sandlådan lokal-med-filsystem och externa sandlådor, är förbjuden. Behörighet att tillåta sådan kommunikation kan inte ges via ett program som körs i Flash Player eller av en användare eller administratör. För skriptning i någondera riktning mellan lokala HTML-filer och lokala SWF-filer (t.ex. med klassen ExternalInterface) krävs att både HTML-filen och SWF-filen finns i sandlådan lokal-tillförlitlig. Detta beror på att de lokala säkerhetsmodellerna för webbläsare skiljer sig från den lokala säkerhetsmodellen i Flash Player. SWF-filer i sandlådan lokal-med-nätverk kan inte läsa in SWF-filer i sandlådan lokal-med-filsystem. SWF-filer i sandlådan lokal-med-filsystem kan inte läsa in SWF-filer i sandlådan lokal-med-nätverk. AIR-programsandlådanI Adobe AIR-körningstiden läggs en extra sandlåda till, som kallas programsandlådan, i modellen för säkerhetssandlåda i Flash Player. De filer som installeras som en del av ett AIR-program läses in i programsandlådan. Alla andra filer som läses in av programmet har säkerhetsrestriktioner som motsvarar de som är angivna i den vanliga säkerhetsmodellen för Flash Player. När ett program installeras, installeras alla filer som finns i ett AIR-paket till en programkatalog på användarens dator. Utvecklare kan referera till denna katalog i koden genom URL-schemat app:/ (se URI-scheman). Alla filer inuti programkatalogträdet tilldelas till programsandlådan när programmet körs. Innehåll i programsandlådan har de fullständiga behörigheter som är tillgängliga för ett AIR-program, inklusive interaktion med det lokala filsystemet. Många AIR-program använder bara dessa lokalt installerade filer för att köra programmet. AIR-program är dock inte begränsade till bara filerna i programkatalogen - de kan läsa in alla typer av filer från alla källor. Detta inkluderar filer som är lokala på användarens dator och filer från tillgängliga fjärrkällor, som till exempel filer på ett lokalt nätverk eller på Internet. Filtyper har ingen påverkan på säkerhetsrestriktioner. Inlästa HTML-filer har samma säkerhetsbehörighet som inlästa SWF-filer från samma källa. Innehåll i programsäkerhetssandlådan har tillgång till AIR-API:n som innehåll i andra sandlådor inte har tillgång till. Egenskapen air.NativeApplication.nativeApplication.applicationDescriptor, som returnerar innehållet i programbeskrivningsfilen för programmet, är till exempel begränsad till innehåll i programsäkerhetssandlådan. Ett annat exempel på ett begränsat API är klassen FileStream som innehåller metoder för att läsa och skriva i det lokala filsystemet. ActionScript-API:er som endast är tillgängliga för innehåll i programsäkerhetssandlådan markeras med AIR-logotypen i Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen. Om dessa API:er används i andra sandlådor, initierar körtiden ett SecurityError-undantag. För HTML-innehåll (i ett HTMLLoader-objekt) är alla AIR-JavaScript-API:n (de som är tillgängliga via egenskapen window.runtime, eller via objektet air när filen AIRAliases.js används) tillgängliga för innehåll i programsäkerhetssandlådan. HTML-innehåll i en annan sandlåda har inte åtkomst till egenskapen window.runtime, och därför kan inte innehållet komma åt API:erna för AIR eller Flash Player. Följande ytterligare begränsningar gäller för innehållskörning inne i AIR-programmet:
Begränsningar för JavaScript inne i AIRTill skillnad från innehåll i programsäkerhetssandlådan kan JavaScript-innehåll i en icke-programsäkerhetssandlåda anropa funktionen eval() när som helst för att köra dynamiskt genererad kod. Men det finns begränsningar för JavaScript som körs i en icke-programsäkerhetssandlåda inne i AIR. Dessa inkluderar:
Mer information finns i Kodrestriktioner för innehåll i olika sandlådor. Inställning av sandlådetyp för lokala SWF-filerEn användare av eller administratören för datorn kan ange att en lokal SWF-fil är tillförlitlig, vilket ger tillstånd att läsa in data från alla domäner, både lokala och i nätverk. Detta anges i katalogerna Global Flash Player Trust och User Flash Player Trust. Mer information finns i Administrativa inställningar och Användarinställningar. Mer information om lokala sandlådor finns i Lokala sandlådor. Adobe Flash ProfessionalDu kan konfigurera en SWF-fil för sandlådan lokal-med-filsystem eller lokal-med-nätverk genom att ange dokumentets publiceringsinställning i utvecklingsverktyget. Adobe FlexDu kan konfigurera en SWF-fil för sandlådan lokal-med-filsystem eller lokal-med-nätverk genom att ange flaggan använd-nätverk i Adobe Flex-kompilatorn. Mer information finns i ”Om alternativ för programkompilering” i Bygga och installera Flex 3-program. Egenskapen Security.sandboxTypeEn författare till en SWF-fil kan använda den skrivskyddade statiska egenskapen Security.sandboxType för att avgöra vilken sandlådetyp som SWF-filen har tilldelats i Flash Player eller AIR-körningstiden. Klassen Security innehåller följande konstanter som representerar tillåtna värden för egenskapen Security.sandboxType:
|
|