De methode
Loader.loadBytes()
biedt een toepassing de mogelijkheid om SWF-inhoud te genereren op basis van een bytearray. Injectieaanvallen op gegevens die van externe bronnen worden geladen, kunnen echter ernstige schade toebrengen bij het laden van inhoud. Dit geldt met name bij het laden van gegevens in de toepassingssandbox, waar de gegenereerde SWF-inhoud toegang heeft tot de volledige set van AIR API's.
Er zijn echter ook situaties waarin het gebruik van de methode
loadBytes()
zonder het genereren van SWF-programmacode vereist is. U kunt de methode
loadBytes()
gebruiken om grafische gegevens te genereren, bijvoorbeeld om de beeldweergavetiming te besturen. Er zijn ook situaties waarin
wel
programmacode mag worden gegenereerd, zoals bij het dynamisch genereren van SWF-inhoud voor het afspelen van audio. In AIR staat de methode
loadBytes()
u standaard
niet
toe om SWF-inhoud te laden; u mag alleen grafische inhoud laden. In AIR heeft de eigenschap
loaderContext
van de methode
loadBytes()
een eigenschap
allowLoadBytesCodeExecution
, die u op
true
kunt instellen om de toepassing expliciet toe te staan
loadBytes()
te gebruiken om SWF-programmacode te laden. In de volgende code wordt getoond hoe u deze functie gebruikt:
var loader:Loader = new Loader();
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.allowLoadBytesCodeExecution = true;
loader.loadBytes(bytes, loaderContext);
Als u
loadBytes()
oproept om SWF-inhoud te laden en de eigenschap
allowLoadBytesCodeExecution
van het LoaderContext-object is ingesteld op
false
(dit is de standaardinstelling), genereert het Loader-object een SecurityError-fout.
Opmerking:
In een toekomstige versie van Adobe AIR wordt deze API mogelijk aangepast. In dat geval moet u mogelijk de inhoud die gebruikmaakt van de eigenschap
allowLoadBytesCodeExecution
van de klasse LoaderContext, opnieuw compileren.