防查询语句注入漏洞攻击
当开发应用程序时,尤其是有关数据库信息的查询,查询语句中可能会有拼接字符串注入漏洞,这便会导致用户资料泄露。那么该如何防范此类漏洞的出现。
可以为查询语句设置参数,方法实例如下面所示:
Using(Sqlconnection cn = new sqlconnection(“连接字符串”))
{
cn.open();
using(sqlcommand cmd = cn.creatcommand())
{
cmd.commandtext=”select * from T_table where name=’”+textbox.text+”’”;
(此时如果在文本框中输入1’ or ‘1’=’1)就可以获取数据库信息。会造成信息的泄露。解决办法就是引入参数。方法如下。
cmd.commandtext=”select * from T_table where name=@Name”;
cmd.Parameters.Add (new sqlParameter ("@Name", textbox.text))};
这样查询数据就会从数据库查询比对,不会再出现注入漏洞攻击的情况。
}
}