黑马程序员技术交流社区

标题: 关于Sql语句防漏洞问题? [打印本页]

作者: 吴冕    时间: 2013-4-24 08:23
标题: 关于Sql语句防漏洞问题?
大家现在有没有更好的方法防止漏洞攻击?
作者: 陈志盟    时间: 2013-4-24 08:31
你是不是说SQL的注入漏洞,他可以通过使用参数化查询来避免

"insert into select_music (music_name) values ('"+TextBox1.Text +"')"
这个可以改成使用参数化查询
Insert into Select_music(music_name) values(@music_name);
cmd.Parameters.Add(new SqlParameter("@music_name",TextBox1.Text));
作者: 林东枫    时间: 2013-4-24 08:40
  1. //txtname 是用户在文本框输入的名字
  2.         "select * from T_User where name='" + txtname + "'";
  3.         "select * from T_User where name = @txtname";
  4.         SqlCommand com = new SqlCommand(con);
  5.         com.Parameters.Add(new SqlParameter("txtname",txtname));
  6.         com.ExecuteNonQuery();
复制代码
我的方法跟 陈志盟 兄弟一样, 但我发现它最后一句 new SqlParamete("@music_name"),
这里的名字多出了 @ 这个字符;
希望我们的代码对你有帮助
作者: 林东枫    时间: 2013-4-24 08:42
为了防止数据库漏洞的注入,我们在写SQL语句的时候,不要用 字符串拼接的方式来操作数据库
像 陈志盟 兄弟说的那样,用传参的形式 来给 SQL语句赋值

作者: 苏波    时间: 2013-4-25 10:08
不要拼接字符串,改用参数就可以防漏洞攻击了
作者: 黄晓波    时间: 2013-4-25 10:11
SQL注入攻击?不要用拼接字符串的方法做查询,改用参数化查询方法。
作者: coolfeiweb    时间: 2013-4-25 14:55
不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取!
作者: 袁梦希    时间: 2013-4-25 14:58
以后有待研究
作者: 黑马-秦歌    时间: 2013-4-26 10:36
预防 SQL 注入攻击就是用 ?代替参数位置而后赋值啊。 要是还想改进那就是限制 SQL语句长度, 正则表达式过滤关键字吧。
作者: 黑马—严守卫    时间: 2013-4-26 16:59
和楼上的一样,防SQL注入攻击就是把字符串拼接,改为参数化查询。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2