感觉作者是初次尝试讲课,准备不是很充分,作个小结:
字符串注入
正常查询语句:select * from admin where username='test' and password='123456'
进行注入:
//用户名输入test' # 绕开了密码验证
select * from admin where username='test' #' and password='123456'
//用户名输入test' -- 在mysql中,-- 为注释,同样也绕开了密码验证
select * from admin where username='test' -- ' and password='123456'
//用户名输入test' or 1=1 -- 同样也绕开了密码验证
select * from admin where username='test' or 1=1 -- ' and password='123456'
数字注入
正常查询语句:select * from news where id=1
进行注入:
//id值输入-1 or 1=1
select * from news where id=-1 or 1=1
预防:
不信任用户输入的任何信息
对特殊字符进行转义
对输入值的类型进行判断
对输入值做正则匹配
通过预编译的方式(如pdo或mysqli)