O método
Loader.loadBytes()
oferece uma maneira de o aplicativo gerar conteúdo SWF de uma matriz de bytes. No entanto, ataques de injeção em dados carregados de fontes remotas podem causar dano grave ao carregar o conteúdo. Isso é particularmente verdadeiro ao carregar dados na caixa de proteção do aplicativo, onde o conteúdo SWF gerado pode acessar o conjunto completo de APIs do AIR.
Há usos válidos para a utilização do método
loadBytes()
sem gerar um código SWF executável. Você pode usar o método
loadBytes()
para gerar dados de imagem para controlar o tempo de exibição de imagem, por exemplo. Há também usos válidos que
dependem
do código de execução, como a criação dinâmica de conteúdo SWF para reprodução de áudio. No AIR, por padrão, o método
loadBytes()
não
permite carregar conteúdo SWF, ele só permite carregar conteúdo de imagem. No AIR, a propriedade
loaderContext
do método
loadBytes()
tem uma propriedade
allowLoadBytesCodeExecution
, que você pode definir como
true
para permitir explicitamente que o aplicativo use
loadBytes()
para carregar o conteúdo SWF executável. O código a seguir mostra como usar esse recurso:
var loader:Loader = new Loader();
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.allowLoadBytesCodeExecution = true;
loader.loadBytes(bytes, loaderContext);
Se você chamar
loadBytes()
para carregar conteúdo SWF e a propriedade
allowLoadBytesCodeExecution
do objeto LoaderContext estiver definida como
false
(o padrão), o objeto Loader lançará uma exceção SecurityError.
Nota:
Em um lançamento futuro do Adobe AIR, essa API pode ser alterada. Quando isso ocorre, talvez seja necessário recompilar o conteúdo que usa a propriedade
allowLoadBytesCodeExecution
da classe LoaderContext.