次の方法で共有


<schemeSettings> 要素 (Uri 設定)

特定のスキームに対して Uri を解析する方法を指定します。

<構成>
   <uri>
     <schemeSettings>

構文

<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>  

要素情報

名前空間: システム

こちらもご覧ください