首页 新闻 会员 周边

PreparedStatment相关的一个问题

0
[已关闭问题] 关闭于 2012-11-09 22:58
PreparedStatement pstatement = connection.prepareStatement("select * from employee where empID=?");
pstatement.setString(1, employeeId);
 
页面输入:
2640;;;
2640' or '1' = '1
 
不会发生SQL注入,但是能返回empID为“2640 对应的正确结果,为什么?
南京大乱炖的主页 南京大乱炖 | 菜鸟二级 | 园豆:212
提问于:2012-07-25 11:21
< >
分享
所有回答(1)
0

如果你的empID为String类型(数据库为varchar等其他表示字符),则无法返回对于结果。“2640;;;”为一个字符串,数据库查无此字符。所以就无法返回结果了

Youkes | 园豆:222 (菜鸟二级) | 2012-10-26 09:09

我的问题是为什么“能”返回结果,不是为什么无法返回结果……

支持(0) 反对(0) 南京大乱炖 | 园豆:212 (菜鸟二级) | 2012-10-26 15:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册