java 编程中连接数据库如何防止单引号注入?

ConnectionSQL.sql.executeQuery("select * from USERS where 用户='"+name+"' and 密码='"+password+"'"); 参照网上这句怎么不行啊?select from user where username='&&replace(request.form("UserID"),',")&&' and password=' &&replace(request.form("Pass"),',")&&

第1个回答  2013-06-28
防止SQL注入的方法最简单的就是例:用户登录需要用户名和密码先用户输入的用户名从数据库中把与其对应的密码查出来在把这密码和用户输入的密码对比就OK了自己试试看吧通得过的
第2个回答  2013-06-28
ParparedStatement可以实现你的要求。但是预处理的方式总比Statement效率慢,如果你不注重效率大可查询,都使用ParparedStatement,我个人的做法是select是在页面用正则表达式过滤这些特殊字符,如果不放心的。可以在后台也使用正则表达式判断,至于ParparedStatement update和insert才会使用
第3个回答  2013-06-28
加一个过滤器就行了啊
第4个回答  2013-06-28
我想问下!你的数据库 USERS表里面有“用户”,“密码”这样的字段?我见过的都没出现过汉字。
第5个回答  2013-06-28
放SQL注入、使用ParparedStatement();