Adobe AIR ランタイムでは、「アプリケーション」サンドボックスと呼ばれるサンドボックスが Flash Player セキュリティサンドボックスモデルに追加されます。AIR アプリケーションの一部としてインストールされたファイルは、アプリケーションサンドボックスにロードされます。アプリケーションがロードするその他のファイルには、通常の Flash Player セキュリティモデルで指定されているセキュリティ制限が適用されます。
アプリケーションがインストールされると、AIR パッケージに含まれているすべてのファイルがユーザーのコンピューターのアプリケーションディレクトリにインストールされます。開発者はこのディレクトリを、
app:/
URL スキームを通じてコードで参照できます(
URI スキーム
を参照)。アプリケーションの実行時にアプリケーションディレクトリツリー内のすべてのファイルがアプリケーションサンドボックスに割り当てられます。 アプリケーションサンドボックス内のコンテンツには、ローカルファイルシステムとのやり取りを含め、AIR アプリケーションで使用できる完全な権限が与えられます。
AIR アプリケーションの多くは、ローカルにインストールされたこれらのファイルのみを使用してアプリケーションを実行します。ただし、AIR アプリケーションがアプリケーションディレクトリ内のファイルだけに制限されるわけではなく、どのソースのどの種類のファイルでも読み込むことができます。これにはユーザーのコンピューターのローカルファイルだけでなく、ローカルネットワークやインターネットなど使用可能な外部ソースのファイルも含まれます。ファイルの種類はセキュリティ制限に影響しません。読み込まれた HTML ファイルは、同じソースから読み込まれた SWF ファイルと同じセキュリティ権限を持ちます。
アプリケーションセキュリティサンドボックス内のコンテンツは、他のサンドボックス内のコンテンツでは使用できない AIR API にアクセスできます。例えば、アプリケーションのアプリケーション記述ファイルのコンテンツを返す
air.NativeApplication.nativeApplication.applicationDescriptor
プロパティは、アプリケーションセキュリティサンドボックス内のコンテンツに制限されます。制限される API のもう 1 つの例として FileStream クラスがあります。このクラスにはローカルファイルシステムに対して読み取りと書き込みを行うためのメソッドが含まれています。
アプリケーションセキュリティサンドボックス内のコンテンツでのみ使用可能な ActionScript API は、『
Adobe Flash Platform 用 ActionScript 3.0 リファレンスガイド
』に AIR のロゴ付きで示されています。これらの API を他のサンドボックスで使用すると、ランタイムから SecurityError 例外がスローされます。
HTML コンテンツ(HTMLLoader オブジェクト内)の場合、すべての AIR JavaScript API (AIRAliases.js ファイルを使用するときに、
window.runtime
プロパティまたは
air
オブジェクトを通じて使用できる API)は、アプリケーションセキュリティサンドボックス内のコンテンツで使用できます。別のサンドボックス内の HTML コンテンツは
window.runtime
プロパティにアクセスできないので、AIR API または Flash Player API にアクセスできません。
AIR アプリケーションサンドボックス内で実行するコンテンツには、次に示す追加の制限があります。
-
アプリケーションセキュリティサンドボックス内の HTML コンテンツの場合、コードの読み込み後にストリングを実行可能コードに動的変換できる API の使用について制限があります。これは、アプリケーションで、アプリケーション以外のソース(潜在的に安全でないネットワークドメインなど)から誤ってコードを挿入(および実行)されないようにするための制限です。例えば、
eval()
関数の使用には制限があります。詳しくは、
異なるサンドボックス内のコンテンツに対するコードの制限
を参照してください。
-
フィッシング攻撃を回避するために、ActionScript の TextField オブジェクト内の HTML コンテンツの
img
タグは、アプリケーションセキュリティサンドボックス内の SWF コンテンツでは無視されます。
-
アプリケーションサンドボックス内のコンテンツは、ActionScript 2.0 テキストフィールドの HTML コンテンツの
asfunction
プロトコルを使用できません。
-
アプリケーションサンドボックス内の SWF コンテンツは、Flash Player 9 アップデート 3 に追加されたクロスドメインキャッシュ機能を使用できません。この機能を使用すると、Flash Player は Adobe プラットフォームコンポーネントのコンテンツを永続的にキャッシュし、そのコンテンツを読み込んだ SWF コンテンツでオンデマンドに再利用できます(コンテンツを何度も読み込む必要がありません)。