次の方法で共有


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

特定の文字エンコーディングに HTML 4.0 名前付きエンティティを使用する場合は true&#DECIMAL; 表記のみを使用してエンコードする場合は false

戻り値

String

エンコードされた文字列。

注釈

このメソッドは、セーフ リストに含まれる文字を除くすべての文字をエンコードします。 文字は表記を使用してエンコード &#DECIMAL; されます。

注意

結果の文字列をページに追加する前に、二重引用符 (" ") または単一引用符 (' ') を囲みます。

次の表に、既定のセーフ文字を示します。 [説明] 列に記載されていない限り、すべての文字は Unicode C0 コントロール と基本的なラテン文字範囲の文字です。

文字 [説明]
A ~ Z 大文字のラテンアルファベット文字
a - z 小文字のラテンアルファベット文字
0-9 数値
(スペース) Space
! 感嘆符
# 番号記号、ハッシュ
$ ドル記号、ドルマーク
% パーセント記号
( ) かっこ
* アスタリスク
+ プラス記号
, コンマ
- ハイフン、マイナス
. 期間、ドット、完全停止
/ スラッシュ
: コロン
; セミコロン
= 等号
? 疑問符
@ 商用 ( )
[ ] 角かっこ
\ 円記号
^ キャレット
_ アンダースコア
` グレーブ アクセント
{ } 中かっこ、中かっこ
| 垂直線
~ チルダ
0x00A1 - 0x00AC Unicode C1 コントロール0x00A1 Latin-1 補助 文字範囲の 0x00A1 (161 decimal) から 0x00AC (172 decimal) の間の特殊文字。 が の場合、この範囲内の文字は useNamedEntities エンコードされます true
0x00AE - 0x00FF Unicode C1 コントロール0x00AE Latin-1 補助文字範囲の 0x00AE (174 decimal) から 0x00FF (10 進数 255) の間の特殊文字。 が の場合、この範囲内の文字は useNamedEntities エンコードされます true
0x0100 - 0x017F 10 進数 (0x0100 256) から 10 進数 (383 0x017F) の間の文字。 (Unicode Latin-Extended-A 文字範囲。
0x0180 - 0x024F 0x0180 (384 decimal) から 0x024F (591 decimal) の間の文字。 (Unicode Latin-Extended-B 文字 範囲。
0x0250 - 0x02AF 10 進数 (592 0x0250) から 10 進数 (687 0x02AF) の間の文字。 (Unicode IPA 拡張文字 範囲。
0x02B0 - 0x02FF 0x02B0 (688 decimal) から 0x02FF (767 decimal) の間の文字。 (Unicode スペース 修飾子文字の文字 範囲。
0x0300 - 0x036F 10 進数0x0300 (768 decimal) から 0x036F (879 decimal) の間の文字。 (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&#32;Site&#32;Scripting&#32;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 コントロール と基本的なラテン文字範囲の文字です。

文字 [説明]
A ~ Z 大文字のラテンアルファベット文字
a - z 小文字のラテンアルファベット文字
0-9 数値
(スペース) Space
! 感嘆符
# 番号記号、ハッシュ
$ ドル記号、ドルマーク
% パーセント記号
( ) かっこ
* アスタリスク
+ プラス記号
, コンマ
- ハイフン、マイナス
. 期間、ドット、完全停止
/ スラッシュ
: コロン
; セミコロン
= 等号
? 疑問符
@ 商用 ( )
[ ] 角かっこ
\ 円記号
^ キャレット
_ アンダースコア
` グレーブ アクセント
{ } 中かっこ、中かっこ
| 垂直線
~ チルダ
0x00A1 ~ 0X00a1 Unicode C1 コントロールと Latin-1 補助 文字範囲の 0x00a1 (161 decimal) と 0x00a1 (172 decimal) の間の特殊文字。 がの場合、この範囲の文字はエンコードされ useNamedEntities true ます。
0x00AE-0X00ae Unicode C1 コントロールと Latin-1 補助 文字範囲の 0x00ae (174 decimal) と 0x00ae (255 decimal) の間の特殊文字。 がの場合、この範囲の文字はエンコードされ useNamedEntities true ます。
0x0100-0x017F 0x0100 (256 decimal) と 0x017F (383 decimal) の間の文字。 (Unicode Latin 拡張 文字の範囲)。
0x0180-0x024F 文字は、0x0180 (384 decimal) と 0x024F (591 decimal) の間にあります。 (Unicode ラテン拡張 B 文字の範囲)。
0x0250-0X0250 0x0250 (592 decimal) と 0X0250 (687 decimal) の間の文字。 (Unicode の IPA 拡張 文字の範囲)。
0x02B0-0X02b0 0x02B0 (688 decimal) と 0X02b0 (767 decimal) の間の文字。 (Unicode スペーシング修飾子 文字の範囲)。
0x0300-0x036F 0x0300 (768 decimal) と 0x036F (879 decimal) の間の文字。 (Unicode 結合分音記号 の文字の範囲)。

次の表は、入力とそれに対応するエンコードされた出力の例を示しています。

alert('XSS Attack!'); alert(&#39;XSS&#32;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&#32;Site&#32;Scripting&#32;Namespace&quot;

セーフリストをカスタマイズするには、 MarkAsSafe メソッドを呼び出します。

適用対象