AIR アプリケーションと共にインストールするファイルから、AIR API にアクセスできます。セキュリティ上の理由で、他のソースのコンテンツからはアクセスできません。例えば、この制限により、リモートドメイン(http://example.com など)のコンテンツからユーザーのデスクトップディレクトリを読み込むこと(またはさらに悪い状況)はできません。
eval()
関数(および関連する API)を呼び出すことによって攻撃される可能性があるセキュリティの抜け穴があるので、アプリケーションと共にインストールされるコンテンツは、これらのメソッドの使用がデフォルトで制限されています。しかし、一部の Ajax フレームワークは、
eval()
関数および関連する API の呼び出しを使用します。
AIR アプリケーションで動作するコンテンツを適切に構成するには、異なるソース別のコンテンツに対するセキュリティ制限の規則を考慮する必要があります。異なるソースのコンテンツは、サンドボックスと呼ばれる個別のセキュリティ区分に配置されます(
セキュリティサンドボックス
を参照)。デフォルトで、アプリケーションと共にインストールされるコンテンツは、
アプリケーション
サンドボックスというサンドボックスにインストールされ、AIR API へのアクセス権が付与されます。アプリケーションサンドボックスは、信頼できないコードの実行を防止するよう設計された制限があり、一般に最も安全性の高いサンドボックスです。
ランタイムでは、アプリケーションと共にインストールされたコンテンツをアプリケーションサンドボックス以外のサンドボックスに読み込むことができます。非アプリケーションサンドボックス内のコンテンツは、一般的な Web ブラウザーのコンテンツと同様のセキュリティ環境で動作します。例えば、非アプリケーションサンドボックス内のコードは、
eval()
メソッドおよび関連するメソッドを使用できます(ただし、同時に AIR API にアクセスすることはできません)。ランタイムには、(AIR API を例えば非アプリケーションコンテンツに公開せずに)異なるサンドボックス内のコンテンツが安全に通信できる方法が備えられています。詳しくは、
異なるセキュリティサンドボックス内のコンテンツのクロススクリプト
を参照してください。
サンドボックスで使用が制限されているコードを呼び出すと、セキュリティ上の理由から、ランタイムは JavaScript エラー「Adobe AIR security violation for JavaScript code in the application security sandbox.」を送出します。
このエラーを回避するには、次節、
セキュリティ関連の JavaScript エラーの回避
で説明するコーディングの手法を参照してください。
詳しくは、
Adobe AIR の HTML セキュリティ
を参照してください。