赞
踩
采用拼接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语句。利还是大于弊。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。