黑马程序员技术交流社区

标题: sql server 漏洞问题 [打印本页]

作者: 许全通    时间: 2012-1-4 10:40
标题: sql server 漏洞问题
本帖最后由 许全通 于 2012-1-6 11:43 编辑

数据库好像有一个漏洞问题,今天实训,做一登陆界面,老师给我检测,直接在用户名里输入了'or ......  记不清了,请问这能解决吗?
作者: 许全通    时间: 2012-1-4 11:04
老师输入的是:' or 2=2
作者: 陆亚    时间: 2012-1-4 12:23
这叫SQL注入式攻击,拼字符串的形式实现字符串的where字句恒成立,进而实现登录,使用参数化查询可以避免
作者: 井路静    时间: 2012-1-4 14:28
这叫SQL 注入漏洞攻击。当使用字符串拼接的形式进行数据库查询时,如
comm.CommandText="select * from T_USERS where UserName='"+username+"'and Password='"+password+"‘“;
当用户输入正确的用户名Admin,密码为1' or '1'='1时,以上SQL语句会被自动拼接为:
select * from T_USERS
where  (UserName ='Admin') and  (Password ='1') or ('1'='1')
即只要用户名正确,这语句就恒成立,所以就能登录成功。
若要避免SQL注入漏洞攻击,就应该使用参数化查询。




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