ディスクへの書き込み

Adobe AIR 1.0 およびそれ以降

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

この自由度には開発者の大きな責任が伴います。アプリケーションの予想外の不安定さは、アプリケーションの機能だけでなく、ユーザーのコンピューターの完全性も危険にさらします。このような理由から、開発者は、 開発者のためのセキュリティのベストプラクティス を参照する必要があります。

AIR 開発者は、いくつかの URL スキーム規則を使用してローカルファイルシステムにアクセスしたり、ファイルをそのシステムに書き込むことができます。

URL スキーム

説明

app:/

アプリケーションディレクトリのエイリアス。このパスからアクセスされたファイルはアプリケーションサンドボックスに割り当てられ、ランタイムによって完全な権限が与えられます。

app-storage:/

ランタイムによって標準化されたローカル記憶領域ディレクトリのエイリアス。このパスからアクセスされたファイルは非アプリケーションサンドボックスに割り当てられます。

file:///

ユーザーのハードディスクのルートを表すエイリアス。このパスからアクセスされたファイルは、アプリケーションディレクトリ内に存在している場合はアプリケーションサンドボックスに割り当てられ、それ以外の場合は非アプリケーションサンドボックスに割り当てられます。

注意: AIR アプリケーションは、app: URL スキームを使用してコンテンツを変更できません。また、アプリケーションディレクトリは、管理者の設定により、読み取り専用になる場合があります。

ユーザーのコンピューターに対する管理者の制限がない限り、AIR アプリケーションには、ユーザーのハードドライブ上のどの場所にも書き込むことができる権限が付与されます。開発者には、 app-storage:/ パスを、アプリケーションに関連するローカル記憶領域に使用することをお勧めします。アプリケーションから app-storage:/ へ書き込まれたファイルは、標準の場所に挿入されます。

  • Mac OS:アプリケーションの記憶領域ディレクトリは <appData>/<appId>/Local Store/ です。ここで <appData> はユーザーの環境設定フォルダーです。これは通常 /Users/<user>/Library/Preferences になります。

  • Windows:アプリケーションの記憶領域ディレクトリは <appData>¥<appId>¥Local Store¥ です。ここで <appData> はユーザーの CSIDL_APPDATA 特殊フォルダーです。通常は、 C:¥Documents and Settings¥<userName>¥Application Data になります。

  • Linux: <appData>/<appID>/Local Store/ です。ここで、 <appData> は、 /home/<user>/.appdata です。

アプリケーションがユーザーのファイルシステム内の既存のファイルとやり取りするように設計されている場合は、必ず 開発者のためのセキュリティのベストプラクティス を参照してください。