SQLインジェクションを防ぐために、クラスを使用してアプリケーション内の特定の単語をチェックしています。
クラスには、特定の単語をブラックリストの単語と一致させようとするforループがあります。一致するものがある場合は、システムのエラーページにリダイレクトする必要があります。
ただし、一致するものが見つかり、リダイレクトしようとすると、「式を評価できません」というエラーが表示され続けます。
コードは次のとおりです。
Private Sub CheckInput(ByVal parameter As String)
Try
Dim errorPage As String = "error_page.aspx?Injection=" & parameter
For i As Integer = 0 To blackList.Length - 1
If (parameter.IndexOf(blackList(i), StringComparison.OrdinalIgnoreCase) >= 0) Then
'Handle the discovery of suspicious Sql characters here
'generic error page on your site
HttpContext.Current.Response.Redirect(errorPage)
End If
Next
Catch ex As Exception
Throw ex
End Try
Tryブロックがエラーをキャッチすると、エラーを出し続け、エラーページにリダイレクトされません。
何か案は?