select realname from t_user where name = 'sunwukong' and password = '123';
复制代码
结果被SQL注入之后,SQL语句就变成如许了:
select realname from t_user where name = 'aaa' and password = 'bbb' or '1'='1';
复制代码
我们可以执行一下这条SQL,看看结果是什么?
把所有结果全部查到了,这是因为 '1'='1' 是恒成立的,并且使用的是 or 运算符,所以 or 前面的条件便是是没有的。如许就会把所有数据全部查到。而在步伐中的判断逻辑是只要结果集中有数据,则表示登录成功。所以以上的输入方式最终的结果就是登录成功。你设想一下,假如这个系统是一个高级别保密系统,只有登录成功的人才有权限,那么这个系统是不是极其伤害了。
解决SQL注入标题