【发布时间】:2012-04-24 17:26:26
【问题描述】:
我正在使用一个类来检查我的应用程序中的某些单词以防止 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 块捕获到错误,它就会继续给出错误并且不会重定向到错误页面。
有什么想法吗?
【问题讨论】:
-
你应该使用准备好的语句进行 sql injection.s
-
“无法评估表达式”来自调试器,而不是您的代码。您可能对某些超出范围的代码有所关注。
标签: asp.net .net vb.net visual-studio