<schemeSettings (Uri 設定的 add > 元素)
新增配置名稱的配置設定。
配置
Uri
schemeSettings
添加>
Syntax
<add
name="http|https"
genericUriParserOptions="DontUnescapePathDotsAndSlashes"
/>
屬性和項目
下列各節說明屬性、子元素和父元素
屬性
屬性 | 描述 |
---|---|
NAME | 套用此設定的配置名稱。 唯一支援的值為 name = "HTTP" 和 name = "HTTPs"。 |
{屬性名稱}屬性
值 | 描述 |
---|---|
genericUriParserOptions | 此配置的剖析器選項。 唯一支援的值是 genericUriParserOptions = "DontUnescapePathDotsAndSlashes"。 |
子元素
無
父項目
元素 | 描述 |
---|---|
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>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>