Важность обратной пометки вокруг имени таблицы в запросе MySQL - PullRequest
14 голосов
/ 26 декабря 2009

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

Ответы [ 3 ]

17 голосов
/ 26 декабря 2009

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

11 голосов
/ 26 декабря 2009

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

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

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

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

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

3 голосов
/ 26 декабря 2009

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

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