qq_任重道远_1
2016-11-08 16:48
为什么会有sql注入呢?为什么随便输入一些用户名,密码会登录成功?
没用预处理,语句参数相当于把表单提交的数据当参数传递之后拼接成完整语句再查询,在执行的时候执行了别的语句。比如例子中的那个语句,本来是selete * from user where username=[参数1] and password=[参数2],但是拼接了用户传递的参数之后,执行时候是:select * from user where username='' or 1=1 # and password =[参数2],#之后相当于注释了,实际执行的就是select * from user where username='' or 1=1,而1=1为真,or true 返回true,所以实际返回的是整个表的数据。所以结果集不为0,故而显示登录成功。
因为没有定义用户名和密码是用什么样的数据类型,例如字符串,整型,浮点型,布尔类型
Duang~MySQLi扩展库来袭
28643 学习 · 181 问题
相似问题