PHP在开启magic_quotes_gpc后,在插入数据时,如果存在单引号等敏感字符,将会被转义。
现插入数据:
insert into message(id,title,content) values (1,'bug\'','bug.org')
此时单引号已经被转义,注入攻击无法成功。但是,bug\'在插入数据库后"\"没有了,存储在数据库中的数据为bug'
如果执行另一处SQL查询:
select id,title,content from message where title='$title'
就会发生二次注入,这样的攻击称为二次SQL注入,很多开源系统都存在这样的漏洞,第一次不会出现漏洞,第二次却出现了SQL注入漏洞