防止ASP.NET中的sql注入
我是编码界的新人 我用几个文本框构建了一个大型网站,因此现在我发现我一直在使用一种危险的方法,通过以下方式在SQL server中插入数据:防止ASP.NET中的sql注入,asp.net,sql,sql-server,regex,Asp.net,Sql,Sql Server,Regex,我是编码界的新人 我用几个文本框构建了一个大型网站,因此现在我发现我一直在使用一种危险的方法,通过以下方式在SQL server中插入数据: execSQL("insert into Dossier(ID_Dossier,Nom_Giac) values(" & id_dossier.text & "," Nom_gaic.text & "')") Public Function execSQL(ByVal req As String, Optional ByVal
execSQL("insert into Dossier(ID_Dossier,Nom_Giac) values(" & id_dossier.text & "," Nom_gaic.text & "')")
Public Function execSQL(ByVal req As String, Optional ByVal type As String = "r")
cmd = New SqlCommand
cmd.CommandText = req
cmd.Connection = con
openCon()
If type = "r" Then
Return cmd.ExecuteReader(CommandBehavior.CloseConnection)
Else
Return cmd.ExecuteNonQuery
End If
closeCon()
End Function
我只是想知道,在我的整个网站中,是否有任何快速的方法可以解决这个问题。我很高兴您希望从您的网站中删除任何SQL注入的可能性
也就是说,没有快速、神奇的“查找并替换易受攻击的代码”功能;您需要进入您的系统并使用更新任何类似的调用。需要参数化查询来防止SQL注入。下面是一个来自这个问题的例子:
使用LINQ to SQL可以为您参数化,从而有助于防止SQL注入攻击: LINQtoSQL通过SQL参数将所有数据传递到数据库。因此,尽管SQL查询是动态组合的,但这些值通过参数替换服务器端,以防止SQL注入攻击的最常见原因
阅读更多相关信息。使用参数化查询,请参见此处请原谅我的讽刺,但恐怕最快的方法是开始更快地键入。。。这需要一些时间来修复。
Public Function GetBarFooByBaz(ByVal Baz As String) As String
Dim sql As String = "SELECT foo FROM bar WHERE baz= @Baz"
Using cn As New SqlConnection("Your connection string here"), _
cmd As New SqlCommand(sql, cn)
cmd.Parameters.Add("@Baz", SqlDbTypes.VarChar, 50).Value = Baz
Return cmd.ExecuteScalar().ToString()
End Using
End Function