首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

关于php sql注入原理,该如何解决

2014-01-09 
关于php sql注入原理网上看,比如一个URLwww.xx.com/news.php?id3这样一个链接,在后面加上一个 符号就报

关于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
这样攻击者就可以绕过认证了

热点排行