zukucode
主にWEB関連の情報を技術メモとして発信しています。

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あああ>" 'エンコードは不要

関連記事