尽管PHP魔术引用成功的SQL注入

Ksh*_*KJ- 13 mysql sql-injection

我一直都知道Magic Quotes根本不会停止SQL注射,但我无法理解为什么不呢!举个例子,假设我们有以下查询:

SELECT * FROM tablename
  WHERE email='$x';
Run Code Online (Sandbox Code Playgroud)

现在,如果用户输入$x=' OR 1=1 --,则查询将是:

SELECT * FROM tablename
  WHERE email='\' OR 1=1 --';
Run Code Online (Sandbox Code Playgroud)

Magic Quotes会添加反斜杠,不会造成任何损害!

有没有办法,我没有看到用户可以在这里绕过魔术报价插入?

new*_*ver 22

诀窍通常是传递二进制值,以便反斜杠成为有效多字节字符的一部分.这是一篇关于它的博客文章.