特定のスキームに対して Uri を解析する方法を指定します。
構文
<schemeSettings>
</schemeSettings>
属性と要素
次のセクションでは、属性、子要素、および親要素について説明します。
属性
なし
子要素
Element | 説明 |
---|---|
を追加 | スキーム名のスキーム設定を追加します。 |
クリア | 既存のすべてのスキーム設定をクリアします。 |
を削除 | スキーム名のスキーム設定を削除します。 |
親要素
Element | 説明 |
---|---|
URI | 一様リソース識別子 (URI) を使用して表される Web アドレスを .NET Framework で処理する方法を指定する設定が含まれています。 |
注釈
既定では、 System.Uri クラスは、パス圧縮を実行する前に、パーセントでエンコードされたパス区切り記号をエスケープ解除します。 これは、次のような攻撃に対するセキュリティ メカニズムとして実装されました。
http://www.contoso.com/..%2F..%2F/Windows/System32/cmd.exe?/c+dir+c:\
この URI がパーセントエンコード文字を正しく処理していないモジュールに渡されると、サーバーによって次のコマンドが実行される可能性があります。
c:\Windows\System32\cmd.exe /c dir c:\
このため、クラス System.Uri 最初にパス区切り記号をエスケープ解除してから、パス圧縮を適用します。 上記の悪意のある URL をクラス コンストラクター System.Uri 渡した結果、次の URI になります。
http://www.contoso.com/Windows/System32/cmd.exe?/c+dir+c:\
この既定の動作は、特定のスキームの schemeSettings 構成オプションを使用して、パーセントエンコードされたパス区切り記号をエスケープ解除しないように変更できます。
構成ファイル
この要素は、アプリケーション構成ファイルまたはマシン構成ファイル (Machine.config) で使用できます。
例
次の例は、http スキームのパーセントエンコードされたパス区切り記号をエスケープしないように、 Uri クラスによって使用される構成を示しています。
<configuration>
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>
要素情報
名前空間: システム
こちらもご覧ください
.NET