日期:2014-05-17  浏览次数:20719 次

sql防注入求助
请问下,各位大侠们.我想问下就是...是不是我把用户输入的字符串..里的单引号(')都替换成空字符串("").是不是这样就能防止了??

------解决方案--------------------
不好意思其实我想问的是...
列如
String sql = "select * from tableName t where t.userName='"+userName+"'";
如果用户输入 test' or '1'='1
select * from tableName t where t.userName='test' or '1'='1';
这样用户就能绕过登录..
如果把全部单引号替换为空字符串,这样用户输入的,就只是个字符串....??
select * from tableName t where t.userName='test or 1=1';
这样做行不行???
不行请举个列子.谢谢.

不行吧。。举个例子。。。。
用户名test能够正确登录,,如果用户输入't'e''s't',这样你把'引号替换为空字符串,结果为test,导致本身不能登录的也能登录了。。。乱套了。。。