schemeSettings 的 <clear> 元素 (URI 設定)

清除所有現有的配置設定。

<configuration>
  <uri>
    <schemeSettings>
      <clear>

Syntax

<clear/>  

屬性和項目

下列章節說明屬性、子元素和父元素。

屬性

無。

子元素

無。

父項目

元素 描述
<schemeSettings> 元素 (URI 設定) 指定如何針對特定配置剖析 Uri

備註

根據預設,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.microsoft.com/Windows/System32/cmd.exe?/c+dir+c:\

此預設行為可透過特定配置的 schemeSettings 組態選項,修改為不會取消逸出百分比編碼路徑分隔符號。

組態檔

此項目可以用於應用程式組態檔或電腦組態檔 (Machine.config)。

範例

下列範例顯示 Uri 類別所使用的組態,該類別會清除所有配置設定,然後支援對 http 配置不逸出百分比編碼路徑分隔符號。

<configuration>  
  <uri>  
    <schemeSettings>  
      <clear/>  
      <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>  
    </schemeSettings>  
  </uri>  
</configuration>  

另請參閱