Успешное внедрение SQL несмотря на магические кавычки PHP

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

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

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

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

Обратная косая черта будет добавлена ​​Магическими Кавычками без какого-либо ущерба!

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

1 ответ

Решение

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

Другие вопросы по тегам