XSS(クロスサイトスクリプティング)対策

カテゴリ: ASP.NET
投稿日時:2008/12/21 11:39:10
ユーザにテキストボックス等で入力させた値を、ページ上に表示する際には、クロスサイトスクリプティング対策が必要になります。
クエリ文字列に関してもユーザが手入力する可能性があるので、対策が必要です。

①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
このエントリーをはてなブックマークに追加

スポンサード リンク