SQL注入
一.产生的原因
例:
1。在前台的语句是:insert into category(name) values('caName')
2。在后台输入语句:娱乐新闻')delete category where id=3--
3。执行时是将后台的语句代替caName,得到:insert into category(name) values(娱乐新闻')delete category where id=3--')
此时,它执行两条语句,一是插入“娱乐新闻”,二是删除ID=3的数据. 于是,可以先补全原来的记录,然后加上自己的代码,
从而达到目的。
二。解决方法
利用传入参数的办法解决
public int test()
{
int res;
using (cmd = new SqlCommand("insert into category(name) values(@caName)", GetConn()))
{
cmd.Parameters.Add(new SqlParameter("@caName", "娱乐新闻c')delete category where id=4--"));
res = cmd.ExecuteNonQuery();
}
return res;
}
注:1。cmd中有一个参数集合,将这个SQL语句加载。
2。也可以使用 cmd.Parameters.AddRange (new SqlParameter []{new SqlParameter ("@caName","哈哈新闻")});