ファイルシステムへのアクセス

Web ブラウザーで実行中のアプリケーションは、ユーザーのローカルファイルシステムとのやり取りのみが制限されます。Web ブラウザーは、Web コンテンツを読み込んでもユーザーのコンピューターが改ざんされないことを保証するセキュリティポリシーを実装します。例えば、ブラウザーで Flash Player を使って実行されている SWF ファイルは、ユーザーのコンピューターに既に存在するファイルと直接やり取りできません。共有オブジェクトはユーザーの環境設定およびその他のデータを管理する目的でユーザーのコンピューターに書き込むことができますが、これはファイルシステム操作の制限になります。 AIR アプリケーションはネイティブにインストールされるので、エンドユーザーとは異なるセキュリティコントラクトを備えています。 このアプリケーションとエンドユーザーとのコントラクトは、ネイティブアプリケーションと同様にインストール時に作成され、アプリケーションがローカルファイルシステムに対して読み取りや書き込みを実行する機能が含まれます。

この自由度には開発者の大きな責任が伴います。 アプリケーションの予想外の不安定さは、アプリケーションの機能だけでなく、ユーザーのコンピューターの完全性も危険にさらします。開発者向けドキュメントの AIR のセキュリティ情報では、ベストプラクティスについて説明しています。

ユーザーのコンピューターに対する管理者の制限がない限り、AIR アプリケーションには、ユーザーのハードドライブ上のどの場所にも書き込むことができる権限が付与されます。ただし、開発者は、ランタイムが各アプリケーションに提供する、ユーザーおよびアプリケーション固有のアプリケーション記憶領域ディレクトリを使用することをお勧めします。 AIR API には、開発者がアプリケーション記憶領域ディレクトリ内のデータを読み取りおよび書き込みするための便利なメソッドが用意されています。 ランタイムは、各アプリケーションおよびユーザーに固有な暗号化されたローカルデータ記憶領域も提供します。 これにより、アプリケーションでは、他のアプリケーションまたはユーザーによって簡単に解読されないように暗号化された形式で、ユーザーのローカルハードディスクに格納されたデータを保存および取得できるようになります。各 AIR アプリケーションに対して個別の暗号化されたローカルストアが使用され、各 AIR アプリケーションは各ユーザーに対して個別の暗号化されたローカルストアを使用します。 アプリケーションでは、Web サービスに対するログイン資格情報など、セキュリティで保護する必要がある情報を格納するために暗号化されたローカルストアを使用できます。 AIR は、暗号化されたローカルストアを各ユーザーに関連付けるために、Windows では DPAPI を使用し、Macintosh では KeyChain を使用します。 暗号化されたローカルストアは AES-CBC 128 ビット暗号化を使用します。

Adobe AIR 2 では、対象のファイル形式がデフォルトで登録されているアプリケーションでファイルを開くことができます。例えば、MP3 ファイルを開くデフォルトのアプリケーションで MP3 ファイルを開くことができます。AIR では、特定のファイル形式を含むファイルをアプリケーションで開けないようにしてあります。その種のファイル形式のファイルを開くと、コードが実行される可能性があります。例えば、Windows の EXE ファイルなどです。使用制限のあるファイル形式は、『 Adobe Flash Platform 用 ActionScript 3.0 リファレンスガイド 』に記載されています。ただし、ネイティブインストーラーでインストールする拡張デスクトップ AIR アプリケーションではあらゆる形式のファイルを開くことができます(拡張デスクトップアプリケーションについて詳しくは、 ネイティブプロセスとの通信 を参照してください)。