Успешная SQL-инъекция, несмотря на PHP Magic Quotes

Я всегда читал, что Magic Quotes не останавливает SQL-инъекции, но я не могу понять, почему нет! В качестве примера предположим, что у нас есть следующий запрос:

SELECT * FROM tablename
  WHERE email='$x';

Теперь, если пользовательский ввод делает $x=' OR 1=1 --, запрос будет выглядеть следующим образом:

SELECT * FROM tablename
  WHERE email='\' OR 1=1 --';

Обратная косая черта будет добавлена ​​Magic Quotes без каких-либо повреждений!

Есть ли способ, которым я не вижу, где пользователь может обойти вставки Magic Quote здесь?

Ответ 1

Обычно трюк передает двоичное значение, чтобы обратная косая черта стала частью допустимого многобайтового символа. Вот об этом в блоге.