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
特定の文字エンコーディングに HTML 4.0 名前付きエンティティを使用する場合は true
、&#DECIMAL;
表記のみを使用してエンコードする場合は false
。
戻り値
エンコードされた文字列。
注釈
このメソッドは、セーフ リストに含まれる文字を除くすべての文字をエンコードします。 文字は表記を使用してエンコード &#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> |
<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 コントロール と基本的なラテン文字範囲の文字です。
文字 | [説明] |
---|---|
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('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 メソッドを呼び出します。