Heim >Backend-Entwicklung >PHP-Tutorial >关于php sql注入原理

关于php sql注入原理

WBOY
WBOYOriginal
2016-06-23 14:28:041026Durchsuche

网上看,比如一个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
这样攻击者就可以绕过认证了

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn