セキュリティサンドボックス

AIR には、AIR アプリケーションの各ファイルの権限を定義する包括的なセキュリティアーキテクチャが用意されています。 これには、アプリケーションと共にインストールされるファイルと、アプリケーションによって読み込まれるその他のファイルの両方が含まれます。 権限はその生成元に従ってファイルに付与され、サンドボックスと呼ばれる論理的なセキュリティグループに割り当てられます。

アプリケーションと共にインストールされるファイルはアプリケーションディレクトリと呼ばれるディレクトリに配置されます。このため、デフォルトではすべての AIR API にアクセスできるアプリケーションサンドボックスと呼ばれるセキュリティサンドボックスに配置されます。 AIR API の中には、アプリケーションリソースディレクトリ以外のソースのコンテンツ(つまり、アプリケーションと共にインストールされたものではないファイル)から利用できるようにした場合に、多大なセキュリティリスクを発生させる API が含まれます。

サンドボックスの AIR セキュリティモデルは、Flash Player セキュリティモデルと追加のアプリケーションサンドボックスで構成されています。 アプリケーションサンドボックスに含まれないファイルには、Flash Player セキュリティモデルで指定されているセキュリティ制限と同様のセキュリティ制限が適用されます。

ランタイムはこれらのセキュリティサンドボックスを使用して、ファイルがアクセスするデータの範囲や、ファイルが実行する処理を定義します。 ローカルのセキュリティを維持するために、各サンドボックス内のファイルは他のサンドボックスのファイルと分離されています。 例えば、外部のインターネット URL から AIR アプリケーションに読み込まれた SWF ファイルはリモートサンドボックスに配置されます。デフォルトでは、このファイルは、アプリケーションサンドボックスに割り当てられるアプリケーションディレクトリ内のファイルに対してスクリプトを実行するための権限を持ちません。

注意: iOS では、ダウンロードしたコードの実行は許可されません。

アプリケーションサンドボックス内のコンテンツの権限

アプリケーションがインストールされると、AIR インストーラーファイルに含まれているすべてのファイルがユーザーのコンピューターのアプリケーションディレクトリにインストールされます。 アプリケーションの実行時にアプリケーションディレクトリツリー内のすべてのファイルがアプリケーションサンドボックスに割り当てられます。 アプリケーションサンドボックス内のコンテンツには、ローカルファイルシステムとのやり取りを含め、AIR アプリケーションで使用できる完全な権限が与えられます。

AIR アプリケーションの多くは、ローカルにインストールされたこれらのファイルのみを使用してアプリケーションを実行します。ただし、AIR アプリケーションがアプリケーションディレクトリ内のファイルだけに制限されるわけではなく、どのソースのどの種類のファイルでも読み込むことができます。これにはユーザーのコンピューターのローカルファイルだけでなく、ローカルネットワークやインターネットなど使用可能な外部ソースのファイルも含まれます。 ファイルの種類はセキュリティ制限に影響しません。読み込まれた HTML ファイルは、同じソースから読み込まれた SWF ファイルと同じセキュリティ権限を持ちます(ただし、アプリケーションサンドボックス内のコンテンツでは、サンドボックスの外部から JavaScript ファイルを読み込むことはできません。 詳しくは、開発者向けドキュメントを参照してください)。

アプリケーションセキュリティサンドボックス内のコンテンツは、他のサンドボックス内のコンテンツでは使用できない AIR API にアクセスできます。 例えば、アプリケーションセキュリティサンドボックス内のコンテンツのみが、ローカルファイルシステムに対して読み取りおよび書き込みを実行できます。

JavaScript の手法には、ストリングを動的に実行可能コードに変換できるものがあります。アプリケーションセキュリティサンドボックス内のコンテンツは、コードがアプリケーション URL から読み込んでいるときにのみこれらの手法を使用できます。 アプリケーションサンドボックス内でこれらの手法を使用すると、セキュリティリスクが発生します。 例えば、ネットワークサンドボックスから読み込まれた文字列をアプリケーションで不用意に実行する可能性があります。また、その文字列には、ユーザーのコンピューターのファイルの削除または変更を行ったり、信頼できないネットワークドメインにローカルファイルのコンテンツを報告したりする悪質なコードが含まれている場合があります。詳しくは、開発者向けドキュメントを参照してください。

注意: モバイル AIR アプリケーションでは、HTML と JavaScript をアプリケーションサンドボックスに読み込むことはできません。モバイル AIR アプリケーションでは、このようなコンテンツをシステムの Web コントロールを使用して表示します。このコントロールには、デフォルトのシステムの Web ブラウザーと同じセキュリティに関する考慮事項があります。

非アプリケーションサンドボックス内のコンテンツの権限

ネットワークやインターネットから読み込んだファイルは、非アプリケーションサンドボックスに割り当てられます。 このようなコンテンツは、Web ブラウザー(Flash Player)内で実行される SWF コンテンツや、Web ブラウザー内で実行される HTML コンテンツと同じ権限および制限で動作します。

アプリケーションセキュリティサンドボックスのコンテンツとは異なり、非アプリケーションセキュリティサンドボックスの HTML コードは、JavaScript のメソッドを使用して、動的に生成されたコードをいつでも実行できます。

非アプリケーションサンドボックス内のコードは、アプリケーションの機能を提供する、権限が付与された AIR API にアクセスできません。

詳しくは、開発者向けドキュメントを参照してください。