ユーザにテキストボックス等で入力させた値を、ページ上に表示する際には、クロスサイトスクリプティング対策が必要になります。
クエリ文字列に関してもユーザが手入力する可能性があるので、対策が必要です。
①HtmlEncode()を使用する
Me.Label1.Text = Server.HtmlEncode(Me.TextBox1.Text)
②独自にサニタイジングする
HTMLタグをサニタイジングするプロシージャ
''' <summary>
''' HTMLをサニタイジングする。
''' </summary>
''' <param name="value"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function SanitizeHtml(ByVal value As String) As String
'サニタイズ
Dim ret As String = ""
If Not value Is Nothing Then
ret = value
ret = Replace(ret, "&", "&amp")
ret = Replace(ret, "<", "&lt")
ret = Replace(ret, ">", "&gt")
ret = Replace(ret, """", "&quot")
End If
Return ret
End Function
実際にページに入力された内容を表示する時に、HTMLタグをサニタイジングします。
Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'入力内容をページに表示する際にサニタイジングする。
Me.Label1.Text = SanitizeHtml(Me.TextBox1.Text)
End Sub