SQL参数在长字符串与VBNET



我正试图使我的服务器注入证明,并有一个日志表,我存储人类可读的事件。是否有可能把一个sql参数在Logtext字符串?为了防止任何恶意输入来通过恶意字符串?

Dim User as String = "busssard"
Dim Logtext As String = "User performed modification " & maliciousString
myCommand = sqlconnection.CreateCommand()
myCommand.CommandText = "INSERT INTO dbo.Logging ([FK_User],[Change]) Values(@Username, '" & Logtext & "')"
myCommand.Parameters.AddWithValue("@Username",User)

有变通办法,但我不想改变太多在整个数据库结构..

完全不要使用AddWithValue。使用Add并ALWAYS指定具有一个列的大小。为了双方的价值观去做。设FK_Uservarchar(50), Changenvarchar(max):

myCommand.CommandText = "INSERT INTO dbo.Logging ([FK_User], [Change]) VALUES (@FK_User, @Change)"
myCommand.Parameters.Add("@FK_User", SqlDbType.VarChar, 50).Value = user
myCommand.Parameters.Add("@Change", SqlDbType.NVarChar, -1).Value = logText

相关内容

  • 没有找到相关文章

最新更新