我在sql查询中面临单引号输入的问题.查询如下.
Dim query As String = "insert into users(comment) values ('" & txt_comment.Text & "')"
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,当用户在文本框中输入单个代码数据时,查询会崩溃.输入例如"henry's".有人想建议我该怎么办?提前致谢
很抱歉大声喊叫,但我不能强调这是多么重要.您给出的"Henry's"示例实际上是一个驯服的示例,只会导致查询失败.有人可以输入 "Henry'; DROP TABLE users;--",现在你丢失了用户表.
即使您具有受限制的输入(例如下拉列表),您仍应使用参数化查询,因为它们允许更强大的键入,并且还允许从缓存中使用查询计划.
我多年没有使用VB.NET,所以请原谅任何语法错误,但我认为你想要的东西如下:
Dim query As String = "insert into users(comment) values (@Comment);"
Using connection As New SqlConnection("Your Connection String")
Using command As New SqlCommand(query, connection)
command.Parameters.Add("@Comment", SqlDbType.VarChar, 255).Value = txt_comment.Text
command.ExecuteNonQuery()
End Using
End Using
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |