SqlParameter防止SQL注入

 

  SQL注入的解决方案有好几种,待我细细研究过之后逐一讲解。

方法一:SqlParameter方法

这里有一篇博客是详细介绍SqlParameter的,可以看看 点我

string sqlStr="select * from Table where Id=@AutoID";
  SqlParameter[] parameters = {
    new SqlParameter("@AutoID", SqlDbType.Int,4) };
  parameters[0].Value = AutoID;
cmd.Parameters.Add(parameters);  //如此调用

  如果参数不止一个的话,就多new几个,然后使用AddRange()方法就可以。

大概就是上面代码的那样子是最常使用的。

SqlParameter方法的原理呢,就是参数化查询时,用户输入的参数仅仅作为参数而永远不会作为查询语句的一部分

什么意思呢?直白的讲,参数化之后,用户输入的东西仅仅的SQL语句的参数,在执行的时候加上 '' 它仅仅作为参数,不会变成SQL逻辑语句的一部分。

 

posted @ 2017-10-25 09:01  蜀云泉  阅读(2933)  评论(0编辑  收藏  举报