Как mysqli_real_escape_string не может предотвратить внедрение SQL? [Дубликат]
На этот вопрос уже есть ответ здесь:
SQL-инъекция, которая обходит mysql_real_escape_string () 4 ответаПрежде всего, я понимаю, что люди хотят использовать хранимые процедуры, чтобы они повторно использовали запросы и заботились о побеге. Тем не менее, я читал, многие разработчики говорят, чтоmysqli_real_escape_string
не может на 100% предотвратить SQL-инъекции. Может кто-нибудь привести пример этого?
Из моих ограниченных знаний по этому вопросу я бы сказал, чтоmysqli_real_escape_string
было бывсегда подходит для строк, но для числовых значений вас могут поймать, если вы не проверите число типа int, float, double и т. д.
РЕДАКТИРОВАТЬ: я забыл добавить что-то критическое: предположим, что кодировка UTF8 и mysqli_set_charset был вызван соответственно. Единственная инъекционная ямы видели несколько наборов символов (ни один из которых не является UTF8).