XML データを使用するときのセキュリティに関する考慮事項
このトピックでは、XML エディタや XSLT デバッガを使用する際に知っておく必要があるセキュリティの問題について説明します。
XML エディタ
XML エディタは、Visual Studio のテキスト エディタに基づいています。XML エディタは通常、System.Xml クラスと System.Xml.Xsl クラスに依存して XML プロセスを処理します。
XSLT 変換は、新しいアプリケーション ドメインで実行されます。XSLT 変換は "サンドボックス" が設定されています。これは、XSLT スタイル シートが置かれている場所に基づきアクセス許可の制限を決定するために、コンピュータのコード アクセスに関するセキュリティ ポリシーが使用されることを意味します。たとえば、インターネット上にあるスタイル シートは最も制限されたアクセス許可を持ち、ユーザーのハード ディスクにコピーされているスタイル シートは "完全な信頼" で実行されます。
XslCompiledTransform クラスは、XSLT を Microsoft Intermediate Language (MSIL) にコンパイルし、実行時の処理速度を高めるために使用されます。
カタログ ファイルで外部の場所を指し示すスキーマは、XML エディタが最初に読み込みを行うときに自動的にダウンロードされます。XmlSchemaSet クラスは、スキーマをコンパイルするために使用されます。XML エディタに付属するカタログ ファイルには、外部のスキーマへのリンクは記述されていません。XML エディタでスキーマ ファイルをダウンロードする前に、ユーザーは外部スキーマへの参照を明示的に追加する必要があります。HTTP ダウンロードは、XML エディタの [Miscellaneous Tools Options (その他のツールのオプション)] ページで無効にすることができます。
XML エディタは、System.Net クラスを使用してスキーマをダウンロードします。
XSLT デバッガ
XSLT デバッガは、Visual Studio のマネージ デバッグ エンジンと、System.Xml および System.Xml.Xsl 名前空間のクラスを使用します。
XSLT デバッガは、それぞれの XSLT 変換をサンドボックスで保護されたアプリケーション ドメインで実行します。コンピュータのコード アクセスに関するセキュリティ ポリシーを使用し、XSLT スタイル シートが置かれている場所に基づいて、アクセス許可の制限が決定されます。たとえば、インターネット上にあるスタイル シートは最も制限されたアクセス許可を持ち、ユーザーのハード ディスクにコピーされているスタイル シートは "完全な信頼" で実行されます。
XSLT スタイル シートは、XslCompiledTransform クラスを使用してコンパイルされます。
XSLT 式エバリュエータは、マネージ デバッグ エンジンによって読み込まれます。マネージ デバッグ エンジンは、すべてのコードがユーザーのローカル コンピュータから実行されることを前提としています。そのため、XslCompiledTransform クラスによって XSLT ファイルがユーザーのコンピュータにダウンロードされます。実行特権で評価が行われる可能性は、制限されたアクセス許可を使用して、新しいアプリケーション ドメインですべての XSLT 変換を実行することにより軽減されます。