我们使用如下查询:
FROM users u INNER JOIN FETCH u.roles where u.password='" + password + "'" + " AND u.username='" + username + "'";
为了防止sql注入,我们使用正则表达式来过滤“用户名”,并且只允许使用“ ^ [a-zA-Z0-9] * $ ”等字符的白名单“密码”字段我们正在使用检查,例如,
if(password.indexOf("'") != -1) { Sql injection attack }
攻击者是否有办法绕过我们用于启动成功的SQL注入攻击的检查?
我们正在使用MySql v5.1
谢谢,
答案 0 :(得分:1)
看起来主持人似乎不赞成我告诉你改进你的代码,答案很简单"是的,上面的代码存在缺陷"。