我正在嘗試使我的服務器注入證明,并有一個日志表來存盤人類可讀的事件。是否可以在 Logtext 字串中放置一個 sql 引數?為了防止任何惡意輸入通過惡意字串?
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)
有解決方法,但我不想在整個資料庫結構中改變太多..
uj5u.com熱心網友回復:
根本不要使用AddWithValue。使用Add并始終指定具有 1 的列的大小。為你的價值觀做這件事。假設FK_User是varchar(50)和Change是nvarchar(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
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/529158.html
