Когда использовать mysql_real_escape_string? - PullRequest
4 голосов
/ 11 марта 2011

Когда я должен использовать mysql_real_escape_string?

Это только когда я вставляю строки в базу данных?Или только когда у меня есть пользовательский ввод?

Спасибо

Ответы [ 4 ]

2 голосов
/ 11 марта 2011

Вы должны использовать mysql_real_escape_string () всякий раз, когда вы создаете запрос, который будет выполняться к базе данных. Любой пользовательский ввод, который используется для создания запроса к базе данных, должен проходить через эту функцию. Это предотвратит атаки инъекций sql.

Вклад пользователей - ваша большая проблема, когда дело доходит до этого.

2 голосов
/ 11 марта 2011

Вы должны использовать mysql_real_escape_string, когда вы вставляете значение строки в оператор SQL и используете MySQL API.

$sql = "SELECT * FROM student WHERE foo = '" . $foo . "'";

Должно быть:

$sql = "SELECT * FROM student WHERE foo = '" .
        mysql_real_escape_string($foo) . "'";

Однако вам также следует рассмотреть возможность использования PDO с подготовленными операторами и параметрами связывания вместо mysql_real_escape_string.Это снижает риск ошибок.

0 голосов
/ 15 марта 2018

Он просто отфильтрует все специальные символы, включенные в данные формы, для предотвращения внедрения SQL (SQL-инъекция - это хакерский инструмент для взлома сайта через некоторые запросы с данными формы) *

0 голосов
/ 11 марта 2011

всегда, кроме целых чисел, там вы используете intval()

...