語言

AntiXssEncoder.UrlPathEncode(String) 方法

定義

編碼用於網址的路徑字串。

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

要編碼的字串。

傳回

包含編碼路徑的網址。

備註

此方法編碼除安全清單中字元外的所有字元。 字元以 %SINGLE_BYTE_HEX 符號編碼。

下表列出預設的安全字元。 所有字元均來自 Unicode C0 控制項及基本拉丁 字元範圍。

角色 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.com 或 )、查詢或片段(例如 www.contoso.com:8080)。 ?v=s978dfs9#x=103 若字串中沒有 scheme 或 authority,則假設該字串為相對路徑,並對路徑進行編碼。 以下網址中,僅編碼子字串 /default.htm :

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

適用於