您的位置 首页 java

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注入问题,你是怎么理解的

文章地址:https://www.zhihuclub.com/179357.shtml

关于作者: 智云科技

热门文章

网站地图