采用拼接SQL语句的坏处

来源:互联网 发布:java包有什么用 编辑:程序博客网 时间:2024/04/30 12:53

采用拼接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语句。利还是大于弊。

 

 

原创粉丝点击