<schemeSettings> 項目 (URI 設定)
指定如何針對特定配置剖析 Uri。
Syntax
<schemeSettings>
</schemeSettings>
屬性和項目
下列章節說明屬性、子元素和父元素。
屬性
無
子元素
Element | 說明 |
---|---|
新增 | 新增配置名稱的配置設定。 |
清除 | 清除所有現有的配置設定。 |
remove | 移除配置名稱的配置設定。 |
父項目
Element | 說明 |
---|---|
uri | 包含設定,指定.NET Framework如何處理使用統一資源識別項表示的網址 (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>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>
項目資訊
命名空間:系統