AntiXssEncoder.HtmlEncode 方法

定义

对指定字符串进行编码,以便在 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 控件和基本拉丁 字符范围,除非在“说明”列中指出。

字符(s) Description
A-Z 大写拉丁文字母字符
a-z 小写拉丁文字母字符
0-9 编号
(空间) 空格键
! 感叹号
# 数字符号,哈希
$ 美元符号(人民币符号)
% 百分号
( ) 括号
* 星号
+ 加号
, 逗号
- 连字符,减号
句点、点、全停止
/ 斜杠
: 冒号
; 分号
= 等号
? 问号
@ 商业版
[ ] 方括号
\ 反斜杠
^ 脱字号
_ 下划线
` 严重强调
{ } 大括号、大括号
| 垂直线
~ 波形符
0x00A1 - 0x00AC Unicode C1 控件和拉丁文 1 补充 字符范围中的0x00A1(161 十进制)和 0x00AC (172 decimal) 之间的特殊字符。 此范围中的字符在何时useNamedEntities进行true编码。
0x00AE - 0x00FF Unicode C1 控件和拉丁语-1 补充 字符范围中的0x00AE(174 小数)和0x00FF(255 小数)之间的特殊字符。 此范围中的字符在何时useNamedEntities进行true编码。
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 扩展 字符范围。)
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; 表示法进行编码。

注释

将双引号(“ ”) 或单引号 (' ') 放在生成的字符串周围,然后再将其添加到页面。

下表列出了默认安全字符。 所有字符均来自 Unicode C0 控件和基本拉丁 字符范围,除非在“说明”列中指出。

字符(s) Description
A-Z 大写拉丁文字母字符
a-z 小写拉丁文字母字符
0-9 编号
(空间) 空格键
! 感叹号
# 数字符号,哈希
$ 美元符号(人民币符号)
% 百分号
( ) 括号
* 星号
+ 加号
, 逗号
- 连字符,减号
句点、点、全停止
/ 斜杠
: 冒号
; 分号
= 等号
? 问号
@ 商业版
[ ] 方括号
\ 反斜杠
^ 脱字号
_ 下划线
` 严重强调
{ } 大括号、大括号
| 垂直线
~ 波形符
0x00A1 - 0x00AC Unicode C1 控件和拉丁文 1 补充 字符范围中的0x00A1(161 十进制)和 0x00AC (172 decimal) 之间的特殊字符。 此范围中的字符在何时useNamedEntities进行true编码。
0x00AE - 0x00FF Unicode C1 控件和拉丁语-1 补充 字符范围中的0x00AE(174 小数)和0x00FF(255 小数)之间的特殊字符。 此范围中的字符在何时useNamedEntities进行true编码。
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 扩展 字符范围。)
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 该方法。

适用于