黑马程序员技术交流社区
标题: 【分享】SQL注入与参数化查询学习总结 [打印本页]
作者: 许庭洲 时间: 2012-11-13 06:10
标题: 【分享】SQL注入与参数化查询学习总结
SQL注入是通过特殊的SQL语句非法获取数据库的内容。
为了保证系统不被黑客进行SQL注入攻击,在SqlCommand执行SQL语句时,可以对提交的数据先进行参数化处理,参数化处理主要是通过SqlCommand对象的Parameters属性的Add方法来完成。
参数化处理有两种方法:
第一种既是在“执行Insert操作”中提到的;
第二种代码如下:
cmd.CommandText = "INSERT INTO b1(name, company, position, shijian)VALUES(@Name, @Company, @Position, @Datetime)";
cmd.Parameters.Add(new SqlParameter("Name", Name.Text));
cmd.Parameters.Add(new SqlParameter("Company", Company.Text));
cmd.Parameters.Add(new SqlParameter("Position", Position.Text));
cmd.Parameters.Add(new SqlParameter("Datetime", DateTime.Parse(Datetime.Text)));
cmd.ExecuteNonQuery();
说明:
在第一种代码中,显示的对各个参数的数据进行了定义,但是在上面这种代码中,并未对参数进行数据定义,所以需要在提供数据时对数据进行适时的转换,例如“shijian”在数据库中定义为DateTime类型,但是其在文本框中获得的为string类型,所以需要调用DateTime的Parse方法对数据进行转换,如果数据库中的数据是int型,在赋值时也应进行相应的转换。
作者: 王新阳 时间: 2012-11-13 09:44
学习了。{:soso_e130:}
作者: 初艳春 时间: 2012-11-13 10:13
很有用!
作者: anyu 时间: 2012-11-13 11:28
学习了···
作者: rende1991 时间: 2014-7-13 14:11
总结不错 让我受益匪浅
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |