System.XML に対するセキュリティ強化の概要
.NET Framework Version 1.0 のリリース以降に行われたいくつかの変更は、.NET Framework Version 1.1 のリリースに含まれています。ここでは、変更によってどのクラスが影響を受けるかについて簡単に説明します。また、詳細情報のトピックへのリンクも用意しています。
XmlReader とその派生クラス、XmlTextReader、および XmlValidatingReader
継承確認要求が XmlTextReader と XmlValidatingReader にクラス レベルで設定されました。これらのクラスからの継承には、完全な信頼が必要です。継承確認要求の詳細については、「継承確認要求」および「セキュリティ確認要求」を参照してください。XmlReader とその派生クラスへの変更の詳細については、「XmlReader による XML の読み取り」を参照してください。
XmlDocument
XmlDocument の Load メソッドの動作が変更されました。クラスが完全に信頼されているか、クラスの信頼性が低いかによって、動作が異なります。Load メソッドに対する影響の詳細については、「外部リソースの解決」を参照してください。また、XmlDocument の ReadNode メソッドと CreateDocumentType メソッドに、メソッド レベルの継承確認要求が設定されています。継承確認要求に関する詳細については、「継承確認要求」および「セキュリティ確認要求」を参照してください。
XslTransform
XslTransform クラスでは、動作の一部が変更されました。動作の変更内容は、次のとおりです。
XslTransform クラスを信頼性の低いコードからでも使用できるようになりました。
.NET Framework Version 1.1 では、XslTransform.Load メソッドに新しいパラメータ Evidence が追加されました。詳細については、「XslTransform クラスによる XSLT プロセッサの実装」を参照してください。
XslTransform.XmlResolver プロパティは、.NET Framework Version 1.1 では使用されなくなりました。その代わりに、XmlResolver 引数が追加されたこと以外はほぼ同じ機能であるメソッドに置き換えられた、XslTransform.Transform のオーバーロードを使用します。詳細については、「XslTransform クラスによる XSLT プロセッサの実装」を参照してください。
外部リソースを参照するスタイル シートと、スクリプトを実行するスタイル シートの処理が変更されました。XslTransform クラスは、msxsl:script 要素を使用している埋め込みスクリプトをサポートします。.NET Framework Version 1.1 では、スタイル シートが持っている証拠に応じて、埋め込みスクリプトに付与されるアクセス許可の種類が決まります。
- スタイル シートが URI から読み込まれたものであれば、その URI を使用して証拠が作成されます。この証拠には、URI と、そのサイトとゾーンが含まれます。
- スタイル シートが別のソースから読み込まれた場合は、System.Security.Policy.Evidence オブジェクトを Load メソッドに渡して、証拠を指定できます。そうしなかった場合、スクリプト アセンブリは完全に信頼されます。
呼び出し元の信頼度が低い場合、埋め込みスクリプトをコンパイルするには UnmanagedCode アクセス許可が必要になります。Evidence を Load メソッドに指定するには、ControlEvidence アクセス許可が必要です。呼び出し元に必要なアクセス許可がない場合は、SecurityException がスローされます。詳細については、「SecurityPermission クラス」と「SecurityPermissionFlag 列挙体」を参照してください。
詳細については、「外部の XSLT スタイルシートとドキュメントの解決」を参照してください。
XmlResolver
XmlResolver クラスの ResolveUri メソッドに、完全な信頼を必要とする継承確認要求が設定されました。継承確認要求に関する詳細については、「継承確認要求」および「セキュリティ確認要求」を参照してください。
新しい派生クラス XmlSecureResolver が .NET Framework Version 1.1 で追加されました。このクラスを使うことによって、完全に信頼されているアプリケーションは、データや外部リソースにアクセスするときに証拠を指定できるようになりました。詳細については、「URI 名を持つ外部 XML リソースの解決」を参照してください。
参照
.NET Framework の XML アーキテクチャの概要 | XML ドキュメント オブジェクト モデル (DOM) | XmlReader による XML の読み取り | XmlWriter による XML の書き方 | XslTransform クラスを使用した XSLT 変換 | .NET Framework の XPathNavigator | XML スキーマ オブジェクト モデル (SOM) | スキーマとの XML の検証 | XML とリレーショナル データおよび ADO.NET との統合 | URI 名を持つ外部 XML リソースの解決 | XML 名の文字エンコーディングと XML データ型の変換 | XML データ型の変換 | XML ドキュメントにおける名前空間