C#防防SQL注入之注入之SqlParameter参数化参数化
开发的时候为了方便快速,经常会使用SQL语句拼接的方式,这往往让不法分子有了可乘之机,利用漏洞进行SQL注入,做一
些不可描述的事情
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from user where username='" + username + "' and password='" + password + "'";
所以我们必须丢弃上面这种方式,使用SqlParameter进行参数化,这样才能提升代码健壮性
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from user where username=@username and password=@password";
SqlParameter[] parameters = {
new SqlParameter("@username", SqlDbType.NVarChar, 20),
new SqlParameter("@password", SqlDbType.NVarChar, 20)};
parameters[0].Value = username;
parameters[1].Value = password;
foreach (SqlParameter parameter in parameters) {
cmd.Parameters.Add(parameter);
}
虽然繁琐了些,但总比被攻击所带来的痛苦更好不是(* ̄︶ ̄)
作者:Mick_小马哥
评论0
最新资源