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 控件和基本拉丁 字符范围。

字符(s) Description
A-Z 大写字母字符
a-z 小写字母字符
0-9 编号
# 数字符号,哈希
% 百分号
( ) 括号
- 连字符,减号
句点、点、全停止
/ 斜杠
\ 反斜杠
_ 下划线
{ } 大括号、大括号
| 垂直线
~ 波形符

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

输入 输出
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@contoso.com
"Anti-Cross Site Scripting Namespace" %22Anti-Cross%20Site%20Scripting%20Namespace%22

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

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

适用于