我已经看到了一些如何使用参数来避免字符转义的示例。使用参数对 SQL 注入是否 100% 安全?
另外,您能否提供一些基本查询(经常使用),以及您如何实现参数?
我来这里之前搜索的一些网站提供了过于复杂的示例。
我已经看到了一些如何使用参数来避免字符转义的示例。使用参数对 SQL 注入是否 100% 安全?
另外,您能否提供一些基本查询(经常使用),以及您如何实现参数?
我来这里之前搜索的一些网站提供了过于复杂的示例。
参数化 SQL 查询的基本示例如下:
SqlCommand command = new SqlCommand(@"select city from users where username = @username", conn);
SqlParameter param = new SqlParameter();
param.ParameterName = "@username";
param.Value = "abc123"
command.Parameters.Add(param);
conn
是您建立的 SqlConnection。
@username
是执行命令时将被替换的参数名称。
abc123
是我为示例添加的用户名。
这显然是一个虚构的场景,但你明白了。
作为较短的版本,您可以使用
SqlCommand command = new SqlCommand(@"select city from users where username = @username", conn);
command.Parameters.AddWithValue("@username", "value");