Il metodo
Loader.loadBytes()
consente a un'applicazione di generare contenuto SWF da un array di byte. Tuttavia, gli attacchi mediante introduzione, o injection, di codice nei dati caricati da origini remote possono causare gravi danni durante il caricamento del contenuto, in particolare quando i dati vengono caricati nella sandbox dell'applicazione dove il contenuto SWF generato può accedere all'intero set di API AIR.
Vi sono tuttavia casi in cui l'uso del metodo
loadBytes()
è consentito, senza generare codice SWF eseguibile. Potete usare il metodo
loadBytes()
, ad esempio, per generare i dati di un'immagine per controllare la tempistica di visualizzazione dell'immagine. Vi sono anche usi consentiti che si basano
effettivamente
sull'esecuzione di codice, ad esempio per la creazione dinamica di contenuto SWF per la riproduzione audio. In AIR, per impostazione predefinita, il metodo
loadBytes()
non
consente di caricare il contenuto SWF; consente solo di caricare il contenuto dell'immagine. In AIR, la proprietà
loaderContext
del metodo
loadBytes()
dispone di una proprietà
allowLoadBytesCodeExecution
, che potete impostare su
true
per consentire esplicitamente all'applicazione di utilizzare
loadBytes()
per caricare contenuto SWF eseguibile. Il codice riportato di seguito mostra come utilizzare questa funzione:
var loader:Loader = new Loader();
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.allowLoadBytesCodeExecution = true;
loader.loadBytes(bytes, loaderContext);
Se chiamate
loadBytes()
per caricare contenuto SWF e la proprietà
allowLoadBytesCodeExecution
dell'oggetto LoaderContext è impostata su
false
(il valore predefinito), l'oggetto Loader genera un'eccezione SecurityError.
Nota:
in una futura versione di Adobe AIR questa API potrebbe essere modificata. In tal caso, potreste dover ricompilare il contenuto che utilizza la proprietà
allowLoadBytesCodeExecution
della classe LoaderContext.