Достаточно ли mysql_real_escape_string для Anti SQL Injection? - PullRequest
7 голосов
/ 13 ноября 2010

В руководстве по PHP есть примечание:

Примечание. Если эта функция не используется для экранирования данных, запрос уязвим для атак с использованием SQL-инъекций.

Этого достаточно для анти-инъекций sql?Если нет, не могли бы вы привести пример и хорошее решение для инъекции анти-SQL?

Ответы [ 3 ]

7 голосов
/ 13 ноября 2010

mysql_real_escape_string обычно достаточно, чтобы избежать внедрения SQL.Это зависит от того, что он не содержит ошибок, то есть есть небольшой неизвестный шанс, что он уязвим (но это еще не проявилось в реальном мире).Лучшей альтернативой, которая полностью исключает SQL-инъекции на концептуальном уровне, является подготовленные операторы .Оба метода полностью зависят от правильного их применения;то есть ни один из них не защитит вас, если вы все равно все испортите.

0 голосов
/ 13 ноября 2010

Лучшее решение - PDO .

Если вы используете традиционный mysql_query, тогда достаточно выполнить все ваши данные через mysql_real_escape_string().

0 голосов
/ 13 ноября 2010

Насколько я знаю, это надежный способ избежать атак SQL-инъекций.

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