Я всегда читал то Волшебство, Кавычки не останавливают Внедрения SQL вообще, но я не могу понять почему нет! Как пример, скажем, у нас есть следующий запрос:
SELECT * FROM tablename
WHERE email='$x';
Теперь, если ввод данных пользователем делает $x=' OR 1=1 --
, запрос был бы:
SELECT * FROM tablename
WHERE email='\' OR 1=1 --';
Обратная косая черта будет добавлена Волшебными Кавычками без ущерба, нанесенного безотносительно!
Существует ли способ, которым я не вижу, где пользователь может обойти Волшебные вставки Кавычки здесь?
Обычно уловка состоит в том, чтобы передать двоичное значение, чтобы обратная косая черта стала частью допустимого многобайтового символа. Вот сообщение в блоге об этом.