我们使用的查询如下:
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
谢谢,
发布于 2012-09-19 14:48:33
虽然版主似乎不赞成我告诉你改进你的代码,但答案只是“是的,上面的代码有一个缺陷”。
https://stackoverflow.com/questions/12495944
复制相似问题