SQL注入问题,你是怎么理解的

SQL语句
303
0
0
2022-04-07
标签   SQL注入

SQL注入问题,通俗说就是我们写的sql语句被改变语意。

SQL注入问题,你是怎么理解的

要求:用户输入的用户名和密码是否相符?相符就允许登录;不符就不允许登录

SQL注入问题,你是怎么理解的user表

//我们的意思:用户名是小明,密码是1234,才可以登录
//我们的sql:
select username,password from user where username="小明" and password="1234";

SQL注入问题,你是怎么理解的我们原本的意思

假如用户输入

username:"a或者别的都可以"

password:"a或者别的" or "a=a"

假如用户输入

username:"a或者别的都可以"
password:"a或者别的" or "a=a"
//被改变后的sql:
select username,password from user where username="a或者别的都可以" and password="a或者别的" or "a=a";
//这里意思就变为:查找所有username,password
/*

因为and的优先级大于or

所以where后边的语句就变为

(username="a或者别的都可以" and password="a或者别的")or "a=a"
不管(username="a或者别的都可以" and password="a或者别的")是否正确
由于or后边是
*/


SQL注入问题,你是怎么理解的

被改变后的意思

总结:sql注入就是,我们用sql想表达的意思被改变