Säkerhet med Flash Platform – översiktFlash Player 9 och senare, Adobe AIR 1.0 och senare En stor del av säkerhetsmodellen som används av körtiderna i Flash Player och AIR bygger på ursprungsdomänen för inlästa SWF-filer, HTML, media och andra resurser. Körbar kod i en fil från en specifik Internetdomän, till exempel www.example.com, kan alltid få åtkomst till alla data från den domänen. Dessa resurser placeras i samma säkerhetsgruppering, även kallad säkerhetssandlåda. (Mer information finns i Säkerhetssandlådor.) Exempelvis kan en ActionScript-kod i en SWF-fil läsa in SWF-filer, bitmappar, ljud, textfiler och andra resurser från sin egen domän. Dessutom tillåts alltid korsskriptning mellan två SWF-filer från samma domän, så länge båda filerna är skrivna i ActionScript 3.0. Korsskriptning innebär att kod i en fil kan komma åt de egenskaper, metoder och objekt som definieras av koden i en annan fil. Korsskriptning används inte mellan SWF-filer skrivna i ActionScript 3.0 eller tidigare; däremot kan dessa filer kommunicera via klassen LocalConnection. Möjligheten för en SWF-fil att korsskripta SWF-filer i ActionScript 3.0 från andra domäner och att läsa in data från andra domäner är som standard otillåten. Tillstånd kan emellertid ges med ett anrop till metoden Security.allowDomain() i den inlästa SWF-filen. Mer information finns i Korsskriptning. Följande grundläggande säkerhetsregler gäller alltid som standard:
I körtiderna i Flash Player och AIR betraktas följande domäner som individuella, och tilldelas individuella säkerhetssandlådor:
Om en namngiven domän, till exempel http://example.com, har en mappning till en specifik IP-adress, till exempel http://192.0.34.166, tilldelas de separata säkerhetssandlådor i körtiderna. Det finns två grundläggande metoder som en utvecklare kan använda för att ge SWF-filen åtkomst till resurser från andra sandlådor än den egna:
I säkerhetsmodellerna för körtider i Flash Player och AIR är det en skillnad mellan inläsning av innehåll och extrahering eller åtkomst av data. Innehåll definieras som media, även visuella media som kan visas med körtider, ljud, video eller SWF-filer eller HTML som innehåller visningsmedier. Data definieras som något som är tillgängligt endast för kod. Innehåll och data läses in på olika sätt.
I Flash Players säkerhetsmodell definieras olika regler för inläsning av innehåll och åtkomst av data. Generellt finns det färre restriktioner för inläsning av innehåll än för åtkomst av data. Generellt kan innehåll (SWF-filer, bitmappar, mp3-filer och videoklipp) läsas in från valfri plats, men om innehållet kommer från en annan domän än den där koden eller innehållet läses in, kommer det att partitioneras i en separat säkerhetssandlåda. Det finns några begränsningar vid inläsning av innehåll:
Om ett inläst medium är en bild, ljud eller video kan dess data (t.ex. pixeldata, ljuddata) bara ges åtkomst av en SWF-fil utanför säkerhetssandlådan om SWF-filens domän ingick i en URL-principfil i mediets ursprungliga domän. Mer information finns i Åtkomst av inlästa medier som data. Andra former av inlästa data omfattar text eller XML-filer, som läses in med objektet URLLoader. Om du vill läsa in data från annan säkerhetssandlåda, måste även i detta fall tillstånd beviljas via en URL-principfil i ursprungsdomänen. Mer information finns i Använda URLLoader och URLStream. Obs! Det krävs aldrig principfiler för att kod som körs i AIR-programsandlådan ska läsa in fjärrinnehåll eller fjärrdata.
|
|