AntiXssEncoder.UrlPathEncode(String) 方法

定义

编码用于 URL 的路径字符串。

protected public:
 override System::String ^ UrlPathEncode(System::String ^ value);
protected internal override string UrlPathEncode (string value);
override this.UrlPathEncode : string -> string
Protected Friend Overrides Function UrlPathEncode (value As String) As String

参数

value
String

要编码的字符串。

返回

包含编码路径的 URL。

注解

此方法对除安全列表中的字符之外的所有字符进行编码。 字符是使用 %SINGLE_BYTE_HEX 表示法编码的。

下表列出了默认安全字符。 所有字符均来自 Unicode C0 控件和基本拉丁语 字符范围。

字符 说明
A-Z 大写字母字符
a-z 小写字母字符
0-9 数字
# 数字符号、哈希
% 百分号
( ) 括号
- 连字符,减号
. Period、dot、full stop
/ 斜杠
\ 反斜杠
_ 下划线
{ } 大括号、大括号
| 垂直线
~ 波形符

下表列出了输入和相应的编码输出的示例。

http://www.contoso.com:8080/<en-us>/[page].htm?v={value1}#x=[amount] http://www.contoso.com:8080/%3cen-us%3e/%5bpage%5d.htm?v={value1}#x=[amount]
alert('XSS Attack!'); alert(%27XSS%20Attack%21%27)%3b
<script>alert('XSS Attack!');</script> %3cscript%3ealert(%27XSS%20Attack%21%27)%3b%3c/script%3e
alert('XSSあAttack!'); alert(%27XSS%e3%81%82Attack%21%27)%3b
user@contoso.com user%40contoso.com
"Anti-Cross Site Scripting Namespace" %22Anti-Cross%20Site%20Scripting%20Namespace%22

此方法仅对 URL 的路径进行编码。 此方法不会对方案 ((例如、http:ftp:、 或 file:) 、颁发机构 (、www.northwind.com) www.contoso.com:8080 )或查询或片段 ((例如 ?v=s978dfs9#x=103) )进行编码。 如果字符串中没有方案或颁发机构,则假定该字符串为相对路径,并对该路径进行编码。 在以下 URL 中,仅对子字符串 /default.htm 进行编码:

http://www.contoso.com:8080/default.htm?v=s978dfs9#x=103

适用于