AntiXssEncoder.HtmlEncode 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將指定的字串編碼以做為 HTML 標記中的文字。
多載
| 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; 標記法來編碼。
注意
將雙引號放在 (「) 或單引號 (' ') 在產生的字串周圍,再將它新增至頁面。
下表列出預設安全字元。 除非在 [描述] 資料行中另有說明,否則所有字元都是來自 Unicode C0 Controls 和 Basic Latin 字元範圍。
| 字元 | 描述 |
|---|---|
| A-Z | 大寫拉丁字母字元 |
| a-z | 小寫拉丁字母字元 |
| 0-9 | 數字 |
| (空間) | Space |
| ! | 驚嘆號 |
| # | 數位記號、雜湊 |
| $ | 貨幣號 |
| % | 百分比符號 |
| ( ) | 括號 |
| * | 星號 |
| + | 加號 |
| , | Comma (逗號) |
| - | 連字號,減號 |
| . | 句點、點、完整停止 |
| / | 斜線 |
| : | 冒號 |
| ; | 分號 |
| = | 等號 |
| ? | 問號 |
| @ | 商業 at |
| [ ] | 方括弧 |
| \ | 反斜線 |
| ^ | 插入點 |
| _ | 底線 |
| ` | 輔色 |
| { } | 大括弧、大括弧 |
| | | 垂直線 |
| ~ | 波狀符號 |
| 0x00A1 - 0x00AC | 0x00A1 (161 十進位) 與從 Unicode C1 控制項和拉丁 1 補充 字元範圍 0x00AC () 172 十進位) 之間的特殊字元。 當 為 true 時 useNamedEntities ,此範圍中的字元會編碼。 |
| 0x00AE - 0x00FF | 0x00AE (174 十進位) 與從 Unicode C1 控制項和拉丁 1 補充 字元範圍0x00FF (255 十進位) 之間的特殊字元。 當 為 true 時 useNamedEntities ,此範圍中的字元會編碼。 |
| 0x0100 - 0x017F | 0x0100 (256 十進位) 與0x017F (383 十進位) 之間的字元。 (Unicode Latin-Extended-A 字元範圍.) |
| 0x0180 - 0x024F | 0x0180 (384 十進位) 與0x024F (591 十進位) 之間的字元。 (Unicode Latin-Extended-B 字元範圍.) |
| 0x0250 - 0x02AF | 0x0250 (592 十進位) 與0x02AF (687 十進位) 之間的字元。 (Unicode IPA Extensions 字元範圍.) |
| 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> |
<script>alert('XSS Attack!');</script> |
alert('XSSあAttack!'); |
alert('XSSあAttack!'); |
user@contoso.com |
user@contoso.com |
"Anti-Cross Site Scripting Namespace" |
"Anti-Cross Site Scripting Namespace" |
若要自訂安全清單,請呼叫 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; 標記法來編碼。
注意
將雙引號放在 (「) 或單引號 (' ') 在產生的字串周圍,再將它新增至頁面。
下表列出預設安全字元。 除非在 [描述] 資料行中另有說明,否則所有字元都是來自 Unicode C0 Controls 和 Basic Latin 字元範圍。
| 字元 | 描述 |
|---|---|
| A-Z | 大寫拉丁字母字元 |
| a-z | 小寫拉丁字母字元 |
| 0-9 | 數字 |
| (空間) | Space |
| ! | 驚嘆號 |
| # | 數位記號、雜湊 |
| $ | 貨幣號 |
| % | 百分比符號 |
| ( ) | 括號 |
| * | 星號 |
| + | 加號 |
| , | Comma (逗號) |
| - | 連字號、減號 |
| . | Period、dot、full stop |
| / | 斜線 |
| : | 冒號 |
| ; | 分號 |
| = | 等號 |
| ? | 問號 |
| @ | 商業 at |
| [ ] | 方括弧 |
| \ | 反斜線 |
| ^ | 插入點 |
| _ | 底線 |
| ` | 輔色 |
| { } | 大括弧、大括弧 |
| | | 垂直線 |
| ~ | 波狀符號 |
| 0x00A1 - 0x00AC | 0x00A1 (161 十進位) 和從 Unicode C1 控制項和拉丁文 1 補充 字元範圍0x00AC (172 十進位) 之間的特殊字元。 當 為 true 時 useNamedEntities ,會編碼此範圍中的字元。 |
| 0x00AE - 0x00FF | 0x00AE (174 十進位) 和從 Unicode C1 控制項和拉丁文 1 補充 字元範圍0x00FF (255 十進位) 之間的特殊字元。 當 為 true 時 useNamedEntities ,會編碼此範圍中的字元。 |
| 0x0100 - 0x017F | 0x0100 (256 十進位) 與0x017F (383 十進位) 之間的字元。 (Unicode Latin-Extended-A 字元範圍.) |
| 0x0180 - 0x024F | 0x0180 (384 十進位) 與0x024F (591 十進位) 之間的字元。 (Unicode Latin-Extended-B 字元範圍.) |
| 0x0250 - 0x02AF | 0x0250 (592 十進位) 與0x02AF (687 十進位) 之間的字元。 (Unicode IPA Extensions 字元範圍.) |
| 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> |
<script>alert('XSS Attack!');</script> |
alert('XSSあAttack!'); |
alert('XSSあAttack!'); |
user@contoso.com |
user@contoso.com |
"Anti-Cross Site Scripting Namespace" |
"Anti-Cross Site Scripting Namespace" |
若要自訂安全清單,請呼叫 MarkAsSafe 方法。