A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许全通 黑马帝   /  2012-1-4 10:40  /  2144 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 许全通 于 2012-1-6 11:43 编辑

数据库好像有一个漏洞问题,今天实训,做一登陆界面,老师给我检测,直接在用户名里输入了'or ......  记不清了,请问这能解决吗?

评分

参与人数 1技术分 +1 收起 理由
李荣壮 + 1

查看全部评分

3 个回复

倒序浏览
老师输入的是:' or 2=2
回复 使用道具 举报
这叫SQL注入式攻击,拼字符串的形式实现字符串的where字句恒成立,进而实现登录,使用参数化查询可以避免

评分

参与人数 1技术分 +1 收起 理由
李荣壮 + 1

查看全部评分

回复 使用道具 举报
这叫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注入漏洞攻击,就应该使用参数化查询。

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马