Успешное внедрение SQL несмотря на магические кавычки PHP - PullRequest
13 голосов
/ 29 апреля 2010

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

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

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

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

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

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

1 Ответ

22 голосов
/ 29 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...