星空网 > 软件开发 > ASP.net

C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】

为什么要参数化执行SQL语句呢?

一个作用就是可以防止用户注入漏洞。

简单举个列子吧。

比如账号密码登入,如果不用参数,

写的简单点吧,就写从数据库查找到id和pw与用户输入一样的数据吧

sql:select id,pw where id='inputID' and pw='inputPW';

一般情况没什么问题,但如果用户输入的id或PW带 ‘ ,这是可能就会出现漏洞,bug了

比如用户输入的id是: 1‘ or ’1‘=‘1

这是sql语句执行的是:select id,pw where id='1‘ or ’1‘=‘1 ‘ and pw='inputPW';

那数据库里的所有账号密码都符合这个条件了。

简而言之,用户可以通过 ' 来改变你SQL的执行。

参数化就可以避免这个问题了。

 

 

 

/************************非查询操作*****************************************///今天太晚了,先写个非查询操作的,明天在写查询操作的。/****函数*****/    /// <summary>    /// 增删改数据,返回影响行数,没有则返回-1    /// </summary>    /// <param name="sql">sql语句</param>    /// <param name="ps">参数</param>    /// <returns>返回影响行数</returns>    static string connStr ="server=IP;User Id=账号名;password=密码;Database=表名";    public static int ExecuteNonQuery(string sql, params MySqlParameter[] ps)    {      using (MySqlConnection conn = new MySqlConnection(connStr))      {        using (MySqlCommand cmd = new MySqlCommand(sql, conn))        {          cmd.Parameters.AddRange(ps);          conn.Open();          return cmd.ExecuteNonQuery();//返回受影响行数        }      }    } /****应用举例****/  public void InsertData()    {        int cid=1,aid=2;        string name="hha";        string sql = "insert into tb_compart (compartID,compartName,areaID)values(@compartID,@compartName,@areaID);";        MySqlParameter[] ps ={  new MySqlParameter("@compartID",(object)cid),        new MySqlParameter("@compartName",name),        new MySqlParameter ("@areaID",(object)aid)};        int r = Mysql.MySQLHelper.ExecuteNonQuery(sql, ps);//r得值就是受影响的行数,执行失败r=-1;      }    } 

 




原标题:C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

实战经验|亚马逊排名突然下降,有哪些补救措施?:https://www.kjdsnews.com/a/777595.html
Kogan官网介绍,Kogan平台怎么样?:https://www.kjdsnews.com/a/777596.html
资本热、市场滚烫,2022年出海淘金者“劲”都往哪儿使?:https://www.kjdsnews.com/a/777597.html
波兰&捷克VAT税务第三辑!VAT税金的处罚规则是什么?:https://www.kjdsnews.com/a/777598.html
Shopee公告更新:Shopee春节期间打款安排:https://www.kjdsnews.com/a/777627.html
上线亚马逊第2年,销售额狂增8倍、破4000万美金!他却说:“慢一点”!:https://www.kjdsnews.com/a/777660.html
如何利用HARO进行外链建设?:https://www.kjdsnews.com/a/1836620.html
2024年,前景最被看好的十大行业:https://www.kjdsnews.com/a/1836621.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流