有你在真好 的个人博客
SQL注入问题,你是怎么理解的
阅读:2302 添加日期:2021/3/27 23:19:09 原文链接:https://www.toutiao.com/item/6811268862579835400/

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想表达的意思被改变

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号