AntiXssEncoder.HtmlEncode 方法

定義

將指定的字串編碼為 HTML 標記中的文字。

多載

名稱 Description
HtmlEncode(String, Boolean)

將指定的字串編碼為 HTML 標記中的文字,並可選擇是否使用 HTML 4.0 命名實體。

HtmlEncode(String, TextWriter)

將指定的字串編碼為 HTML 標記中的文字,並使用指定的文字寫入器輸出字串。

HtmlEncode(String, Boolean)

將指定的字串編碼為 HTML 標記中的文字,並可選擇是否使用 HTML 4.0 命名實體。

public:
 static System::String ^ HtmlEncode(System::String ^ input, bool useNamedEntities);
public static string HtmlEncode(string input, bool useNamedEntities);
static member HtmlEncode : string * bool -> string
Public Shared Function HtmlEncode (input As String, useNamedEntities As Boolean) As String

參數

input
String

要編碼的字串。

useNamedEntities
Boolean

true 使用HTML 4.0命名實體來執行特定字元編碼; false 僅以 &#DECIMAL; 符號來編碼。

傳回

那個編碼字串。

備註

此方法編碼除安全清單中字元外的所有字元。 字元以 &#DECIMAL; 符號編碼。

Note

在新增字串前,先在結果字串周圍加上雙引號(“ ”)或單引號(' ')。

下表列出預設的安全字元。 除非在描述欄註明,否則所有字元均來自 Unicode C0 控制項及基本拉丁 字元範圍。

角色 Description
A-Z 大寫拉丁字母
a-z 小寫拉丁字母
0-9 數字
(太空) 空間
! 驚嘆號
# 數字符號、雜湊值
$ 美元符號
% 百分比符號
( ) 括號
* Asterisk
+ 加號
, 逗號
- 連字號,負號
. 句點,點,句號
/ 斜線
冒號
; 分號
= 等號
? 問號
@ 商業廣告
[ ] 方括號
\ 反斜線
^ 插入號
_ 底線
` 莊重口音
{ } 牙套、捲括號
| 垂直線
~ 波浪號
0x00A1 - 0x00AC Unicode C1 控制與 Latin-1 補充 字元範圍中介於 0x00A1(161 位小數)至 0x00AC(172 位)之間的特殊字元。 當 useNamedEntities 為 時 true,該範圍內的字元被編碼。
0x00AE - 0x00FF Unicode C1 控制與拉丁語 1 補充 字元範圍中介於 0x00AE(174 位小數)至 0x00FF(255 位)之間的特殊字元。 當 useNamedEntities 為 時 true,該範圍內的字元被編碼。
0x0100 - 0x017F 字元介於0x0100(小數256)至0x017F(383)。 (Unicode 拉丁語擴展 A 字元範圍。)
0x0180 - 0x024F 字元介於0x0180(小數384)至0x024F(591)之間。 (Unicode 拉丁語擴展 B 字元範圍。)
0x0250 - 0x02AF 字元介於0x0250(小數點數592)至0x02AF(687位)。 (Unicode IPA 擴充 字元範圍。)
0x02B0 - 0x02FF 字元介於0x02B0(688位小數)至0x02FF位(767位)。 (Unicode 間 距修飾字母 的字元範圍。)
0x0300 - 0x036F 字元介於0x0300(小數768)至0x036F(879)。 (Unicode 結合變音符號 字元範圍。)

下表列出輸入及相應編碼輸出的範例。

輸入 產出
alert('XSS Attack!'); alert('XSS Attack!');
<script>alert('XSS Attack!');</script> &lt;script&gt;alert(&#39;XSS Attack!&#39;);&lt;/script&gt;
alert('XSSあAttack!'); alert(&#39;XSS&#12354;Attack!&#39;);
user@contoso.com user@contoso.com
"Anti-Cross Site Scripting Namespace" &quot;Anti-Cross Site Scripting Namespace&quot;

要自訂保險箱清單,請呼叫該 MarkAsSafe 方法。

適用於

HtmlEncode(String, TextWriter)

將指定的字串編碼為 HTML 標記中的文字,並使用指定的文字寫入器輸出字串。

protected public:
 override void HtmlEncode(System::String ^ value, System::IO::TextWriter ^ output);
protected internal override void HtmlEncode(string value, System.IO.TextWriter output);
override this.HtmlEncode : string * System.IO.TextWriter -> unit
Protected Friend Overrides Sub HtmlEncode (value As String, output As TextWriter)

參數

value
String

要編碼的字串。

output
TextWriter

用來輸出字串的文字寫入器。

備註

此方法編碼除安全清單中字元外的所有字元。 字元以 &#DECIMAL; 符號編碼。

Note

在新增字串前,先在結果字串周圍加上雙引號(“ ”)或單引號(' ')。

下表列出預設的安全字元。 除非在描述欄註明,否則所有字元均來自 Unicode C0 控制項及基本拉丁 字元範圍。

角色 Description
A-Z 大寫拉丁字母
a-z 小寫拉丁字母
0-9 數字
(太空) 空間
! 驚嘆號
# 數字符號、雜湊值
$ 美元符號
% 百分比符號
( ) 括號
* Asterisk
+ 加號
, 逗號
- 連字號,負號
. 句點,點,句號
/ 斜線
冒號
; 分號
= 等號
? 問號
@ 商業廣告
[ ] 方括號
\ 反斜線
^ 插入號
_ 底線
` 莊重口音
{ } 牙套、捲括號
| 垂直線
~ 波浪號
0x00A1 - 0x00AC Unicode C1 控制與 Latin-1 補充 字元範圍中介於 0x00A1(161 位小數)至 0x00AC(172 位)之間的特殊字元。 當 useNamedEntities 為 時 true,該範圍內的字元被編碼。
0x00AE - 0x00FF Unicode C1 控制與拉丁語 1 補充 字元範圍中介於 0x00AE(174 位小數)至 0x00FF(255 位)之間的特殊字元。 當 useNamedEntities 為 時 true,該範圍內的字元被編碼。
0x0100 - 0x017F 字元介於0x0100(小數256)至0x017F(383)。 (Unicode 拉丁語擴展 A 字元範圍。)
0x0180 - 0x024F 字元介於0x0180(小數384)至0x024F(591)之間。 (Unicode 拉丁語擴展 B 字元範圍。)
0x0250 - 0x02AF 字元介於0x0250(小數點數592)至0x02AF(687位)。 (Unicode IPA 擴充 字元範圍。)
0x02B0 - 0x02FF 字元介於0x02B0(688位小數)至0x02FF位(767位)。 (Unicode 間 距修飾字母 的字元範圍。)
0x0300 - 0x036F 字元介於0x0300(小數768)至0x036F(879)。 (Unicode 結合變音符號 字元範圍。)

下表列出輸入及相應編碼輸出的範例。

輸入 產出
alert('XSS Attack!'); alert(&#39;XSS Attack!&#39;);
<script>alert('XSS Attack!');</script> &lt;script&gt;alert(&#39;XSS Attack!&#39;);&lt;/script&gt;
alert('XSSあAttack!'); alert(&#39;XSS&#12354;Attack!&#39;);
user@contoso.com user@contoso.com
"Anti-Cross Site Scripting Namespace" &quot;Anti-Cross Site Scripting Namespace&quot;

要自訂保險箱清單,請呼叫該 MarkAsSafe 方法。

適用於