当前位置:   article > 正文

采用拼接SQL语句的坏处_c# 拼接sql的弊端

c# 拼接sql的弊端

采用拼接SQL语句。这样做很容易引起SQL注入攻击。

 

那么SQL注入是什么了?

 

SQL注入是目前比较常见的针对数据库的一种攻击方式。在这种攻击方式中,攻击者会将一些恶意代码插入到字符串中。然后会通过各种手段将该字符串传递到SQLServer数据库的实例中进行分析和执行。只要这个恶意代码符合SQL语句的规则,则在代码编译与执行的时候,就不会被系统所发现。由此可见SQL注入式攻击的危害是很大的。

 

防止SQL注入:

 总体来说,防治SQL注入式攻击可以采用两种方法,一是加强对用户输入内容的检查与验证;二是强迫使用参数化语句来传递用户输入的内容。

 

比如说以前采用:

insert into test values('"+id+"','"+name+"');

现在可以改成:

           string cmd = "insert into test values(@id,@name)";
            MySqlParameter[] paras ={
                                       new MySqlParameter("@id",MySqlDbType.String),
                                       new MySqlParameter("@name",MySqlDbType.String)
                                   };
            paras[0].Value = ID;

            paras[1].Value = Name;

 

带参数的sql语句唯一的缺点就是占用系统资源的问题了,因为它是早被预编译好的东西,所以系统在调用的时候是直接使用的。

但是相比于直接拼接的SQL语句。利还是大于弊。

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/556574
推荐阅读
相关标签
  

闽ICP备14008679号