【发布时间】:2018-07-24 14:55:54
【问题描述】:
假设我有以下代码(删除无用的东西,如连接字符串、数据集创建、设置命令类型等)。
string sql = "SELECT * FROM SomeTable WHERE Field=@ParamValue";
using (SqlConnection conn = new SqlConnection())
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.Add(new SqlParameter("ParamValue", someValue));
da.Fill(ds);
}
这种参数化查询的使用是否足以确保防止 SQL 注入的安全性,还是我需要先从 someValue 中去除引号,然后再将其作为参数传递?
【问题讨论】:
-
不,您不需要转义引号。
标签: c# sql sql-server security sql-injection