清除所有现有方案设置。
<配置>
<uri>
<schemeSettings>
<清楚>
Syntax
<clear/>
特性和元素
下列各节描述了特性、子元素和父元素。
特性
没有。
子元素
没有。
父元素
| 元素 | Description |
|---|---|
| <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)。
Example
下面的示例演示了类使用 Uri 的配置,该配置清除所有方案设置,然后添加对不转义 http 方案百分比编码路径分隔符的支持。
<configuration>
<uri>
<schemeSettings>
<clear/>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>