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","哈哈新闻")});

 

 

posted @ 2013-04-17 11:20  水库  阅读(143)  评论(0编辑  收藏  举报