Важность обратной пометки вокруг имени таблицы в запросе MySQL

В запросах MySQL насколько важно ставить обратные метки вокруг имени таблицы. Это как-то связано с безопасностью? Возможны ли инъекции MySQL через имя таблицы, если имя таблицы динамически создается в PHP на основе пользовательских данных?

3 ответа

Решение

Обратные пометки помогают вам случайно использовать имя, например, зарезервированное слово в SQL. Возьмите таблицу с именем "where", это глупое имя для таблицы, с которой я согласен, но если вы оберните ее в обратные черты, она будет работать нормально.

В запросах MySQL насколько важно ставить обратные метки вокруг имени таблицы. Это как-то связано с безопасностью?

Что касается обратных галочек, я использую их, когда существует конфликт имен между именами mysql-speccs и именами из запроса.

Возможны ли инъекции MySQL через имя таблицы, если имя таблицы динамически создается в PHP на основе пользовательских данных?

Когда есть пользовательский ввод, вы должны убедиться, что вы фильтруете и проверяете входные данные, поступающие от пользователя. Так что да, есть риск для безопасности.

Я бы порекомендовал вам использовать intval для чисел и функцию mysql_real_escape_string для любых переменных, которые вы можете использовать в своих запросах.

Если у вас есть имя таблицы с тем же именем, что и ключевое слово, например, select, следующий запрос все равно будет работать:

select * from `select`;
Другие вопросы по тегам