ASP.NET htmlのタグ文字などをエンコード(エスケープ)する
ASP.NET
では<testあああ>
のようなhtml
のタグ文字を含む文字列をラベルなどにセットして表示するときはエンコードを行う必要があります。
HttpUtility.HtmlEncode("<testあああ>")
HttpUtility.HtmlEncode
を行うと、<
は&lt;
、>
は&gt;
、半角スペースは&nbsp;
などhtml
の特殊文字を変換してくれます。
これを忘れると悪意あるコードがそのままページ上で実行されてしまう(クロスサイトスクリプティング)ので注意が必要です。
エンコードが必要なケース
TextBox
のテキストに値を設定するときにはエンコードは必要ありませんが、Label
のテキストに設定するときはエンコードが必要です。
Label1.Text = HttpUtility.HtmlEncode("<testあああ>")
TextBox1.Text = "<testあああ>" 'エンコードは不要