您好,欢迎访问一九零五行业门户网

关于php sql注入原理

网上看,比如一个url  www.xx.com/news.php?id=3   这样一个链接,在后面加上一个 ' 符号就报错了,或者是 and 1=1 然后 and 1=2 如果两个返回值不一样就可以判断有注入点,
那比如 www.xx.com/news.php?id=3  这个地方,我的sql是这样的  select * from news where id='3' 在地址栏加一个 ' 符号以后为什么会出错了,and 1=1 和and 1=2 为什么就可以判断有注入点呢,
回复讨论(解决方案) 加上'就报错,不知道提示什么错误,如果加上',传值就当做字符处理,但是如果你开启agic_quotes_gpc为on
引号就被转义,至于and 1 = 1,比如有
select * from tbl_users 
where username='zhang3' or 1=1 #' and password = 'abc123' limit 0,1
由于 # 是 mysql中的注释符, #之后的语句不被执行,实现上这行语句就成了:
select * from tbl_users 
where username='zhang3' or 1=1
这样攻击者就可以绕过认证了
其它类似信息

推荐信息