Loader.loadBytes()
メソッドを使用すると、アプリケーションでバイト配列から SWF コンテンツを生成できます。ただし、リモートソースから読み込まれるデータに対するインジェクション攻撃によって、コンテンツを読み込むときに深刻なダメージを与える可能性があります。これは特に、アプリケーションサンドボックスにデータが読み込まれるときに発生することがあります。アプリケーションサンドボックスでは生成された SWF コンテンツで AIR API の完全なセットにアクセスできます。
実行可能な SWF コードを生成せずに、
loadBytes()
メソッドを使用する正当な使用法があります。例えば、
loadBytes()
メソッドを使用してイメージデータを生成し、イメージ表示のタイミングを制御できます。また、オーディオ再生のための SWF コンテンツの動的な作成など、コードの実行に
依存する
正当な使用法もあります。AIR では、デフォルトで
loadBytes()
メソッドを使用して SWF コンテンツを読み込むことが
できません
。このメソッドでは、イメージコンテンツのみ読み込むことができます。AIR では、
loadBytes()
メソッドの
loaderContext
プロパティに
allowLoadBytesCodeExecution
プロパティが含まれています。このプロパティを
true
に設定すると、アプリケーションで
loadBytes()
を使用して実行可能な SWF コンテンツを読み込むことを明示的に許可できます。次のコードは、この機能の使用方法を示します。
var loader:Loader = new Loader();
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.allowLoadBytesCodeExecution = true;
loader.loadBytes(bytes, loaderContext);
loadBytes()
を呼び出して SWF コンテンツを読み込み、LoaderContext オブジェクトの
allowLoadBytesCodeExecution
プロパティを
false
(デフォルト)に設定すると、Loader オブジェクトは SecurityError 例外をスローします。
注意:
Adobe AIR の将来のリリースでは、この API は変更される可能性があります。変更された場合は、LoaderContext クラスの
allowLoadBytesCodeExecution
プロパティを使用するコンテンツを再コンパイルする必要がある場合があります。