セキュリティサンドボックスFlash Player 9 以降、Adobe AIR 1.0 以降 クライアントコンピューターは、外部 Web サイト、ローカルファイルシステム、インストールされた AIR アプリケーションなどの様々なソースから、コード、コンテンツおよびデータが含まれている個々のファイルを取得できます。Flash Player および AIR ランタイムでは、コードファイルやその他のリソース(共有オブジェクト、ビットマップ、サウンド、ビデオ、データファイルなど)がロードされると、それらを元の場所に基づいてセキュリティサンドボックスに個別に割り当てます。次の節では、ランタイムで適用される規則について説明します。これらの規則は、任意のサンドボックス内で実行するコードやコンテンツがアクセスできるものを管理します。 Flash Player のセキュリティについて詳しくは、Flash Player デベロッパーセンターの「セキュリティ」トピック(www.adobe.com/go/devnet_security_jp)を参照してください。 リモートサンドボックスFlash Player および AIR ランタイムでは、インターネットのアセット(SWF ファイルを含む)を元のドメインに対応する個別のサンドボックスに分類します。例えば、example.com からロードされたアセットは、foo.org からロードされたアセットとは異なるセキュリティサンドボックスに配置されます。デフォルトでは、それらのファイルは、それら自体のサーバーにあるリソースへのアクセスを許可されています。 リモート SWF ファイルは、URL ポリシーファイル、Security.allowDomain() メソッドなどの Web サイトおよび作成者の明示的な許可によって、他のドメインのその他のデータにアクセスできます。詳しくは、Web サイトのコントロール(ポリシーファイル)と作成者(開発者)コントロールを参照してください。 リモート SWF ファイルは、ローカルファイルまたはローカルリソースをロードできません。 Flash Player のセキュリティについて詳しくは、Flash Player デベロッパーセンターの「セキュリティ」トピック(www.adobe.com/go/devnet_security_jp)を参照してください。 ローカルサンドボックスローカルファイルとは、file: プロトコルまたは UNC(Universal Naming Convention)パスを使用して参照されるすべてのファイルを表しています。ローカル SWF ファイルは、次の 4 つのローカルサンドボックスのいずれかに配置されます。
local-with-networking サンドボックスと local-with-filesystem サンドボックスの間の通信は、local-with-filesystem サンドボックスとリモートサンドボックスの間の通信と同様に、厳しく禁じられています。 そのような通信を可能にする許可を、Flash Player で実行中のアプリケーションまたはユーザーや管理者が付与することはできません。 ローカル HTML ファイルとローカル SWF ファイル間の一方向のみのスクリプト — 例えば、ExternalInterface クラスを使用するには、HTML と SWF の両ファイルを local-trusted サンドボックスに配置する必要があります。その理由は、ブラウザーのローカルセキュリティモデルが Flash Player のローカルセキュリティモデルと異なるからです。 local-with-networking サンドボックス内の SWF ファイルは、local-with-filesystem サンドボックス内の SWF ファイルをロードできません。 local-with-filesystem サンドボックス内の SWF ファイルは、local-with-networking サンドボックス内の SWF ファイルをロードできません。 AIR アプリケーションサンドボックス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 アプリケーションサンドボックス内で実行するコンテンツには、次に示す追加の制限があります。
AIR における JavaScript の制限アプリケーションセキュリティサンドボックスのコンテンツとは異なり、非アプリケーションセキュリティサンドボックスの JavaScript コンテンツは、eval() 関数を呼び出して、動的に生成されたコードをいつでも実行できます。ただし、AIR の非アプリケーションセキュリティサンドボックス内で実行する JavaScript には制限があります。制限は次のとおりです。
詳しくは、異なるサンドボックス内のコンテンツに対するコードの制限を参照してください。 ローカル SWF ファイルのサンドボックスタイプの設定コンピューターのエンドユーザーまたは管理者は、ローカル SWF ファイルが信頼できることを指定し、ローカルおよびネットワークの他のドメインからデータをロードできるようにすることができます。 これは、Global Flash Player Trust ディレクトリおよび User Flash Player Trust ディレクトリで指定します。 詳しくは、管理ユーザーのコントロールおよびユーザーのコントロールを参照してください。 ローカルサンドボックスについて詳しくは、ローカルサンドボックスを参照してください。 Adobe Flash Professionallocal-with-filesystem サンドボックスまたは local-with-networking サンドボックス用の SWF ファイルを構成できます。そのためには、オーサリングツールでドキュメントのパブリッシュ設定を設定します。 Adobe Flexlocal-with-filesystem サンドボックスまたは local-with-networking サンドボックス用の SWF ファイルを構成できます。そのためには、Adobe Flex コンパイラーで use-network フラグを設定します。詳しくは、Flex 3 アプリケーションの構築と展開の「アプリケーションコンパイラーのオプションについて」を参照してください。 Security.sandboxType プロパティSWF ファイルの作成者は、読み取り専用の静的プロパティ Security.sandboxType を使用して、Flash Player または AIR ランタイムによって SWF ファイルが割り当てられたサンドボックスのタイプを特定できます。Security クラスは、Security.sandboxType プロパティに指定できる値を表す次のような定数を含んでいます。
|
|