黑马程序员技术交流社区
标题:
SQL注入式攻击
[打印本页]
作者:
严鹏
时间:
2012-2-17 14:00
标题:
SQL注入式攻击
.Net中防止SQL注入式攻击有哪些方式?分别是怎样实现的?
作者:
许全通
时间:
2012-2-17 14:16
注入攻击就是利用sql语句特点使得条件恒成立,若要避免SQL注入漏洞攻击,就应该使用参数化查询。 如:
string sql = string.Format("SELECT COUNT(*) FROM hr_LoginUser " + "where LoginID=@id and pwd=@pwd and Role=@role");
SqlCommand command = new SqlCommand(sql, DBHelper.conn);
//操作数据库
command.Parameters.Add("@id", SqlDbType.NVarChar, 20).Value = txtLogin.Text;
command.Parameters.Add("@pwd", SqlDbType.NVarChar, 20).Value = txtPassword.Text;
command.Parameters.Add("@role", SqlDbType.Int).Value = 0;
作者:
黄晓波
时间:
2012-2-17 17:28
拼字符串,使等式成立。解决办法就是参数化查询。
作者:
曹停
时间:
2012-2-17 18:08
参数化查询!
在数据库中写存储过程更好!
可以减少网络流量!提高网站效率!而且代码封装性好!
作者:
严海彬
时间:
2012-2-17 18:13
其实还有一种情况,这种情况在实际的web开发中必须考虑到的,但又不仅限于数据库注入,就是用户发布信息的时候,所输入的内容,比如文章等,这样我们就不能只靠参数化查询来防止注入,例如对方插入了一段脚本代码,那是不是帖子里面就会调用这个脚本了呢,所以我们必须防范,对用不输入的数据进行判断,过滤,替换
但还有情况就是用户直接对你的数据处理页面发请求,
有一种极端的办法是在,web的Global.asax文件中Application_BeginRequest方法体内,用正则过滤这些特殊标签,把它们全部转义一遍,
作者:
付茂炯
时间:
2012-2-23 16:16
1、使用sqlserver的存储过程。
2、使用string.Replace(),方法替换掉敏感字符。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2