Есть ли в раскрывающемся меню риск внедрения MySQL

Я хочу, чтобы мои веб-сайты позволяли пользователям использовать раскрывающееся меню для фильтрации списка данных, предоставляемых MySQL. Варианты из выпадающего меню используются следующим образом:

$pulldown_choice = _GET['pulldown_choice'];
..... #other codes here
$sql = "SELECT * FROM tablename WHERE item LIKE '%$pulldown_choice%';

Мой вопрос: нужно ли мне беспокоиться о внедрении базы данных из предопределенных вариантов раскрывающегося списка? Спасибо!


person LearnAWK    schedule 19.07.2015    source источник
comment
Лучше всего использовать параметры для всего, что вы, возможно, захотите объединить в свой SQL. Так что, по сути, будьте в безопасности и всегда используйте параметризованные запросы.   -  person Bob Jarvis - Reinstate Monica    schedule 19.07.2015
comment
Хорошая точка зрения! Поступайте правильно и будьте спокойны.   -  person LearnAWK    schedule 19.07.2015
comment
Очевидно, что кто-то может ввести * и подделать ваш запрос. Так что да, вам нужно беспокоиться об инъекциях здесь.   -  person Tim Biegeleisen    schedule 19.07.2015
comment
@Tim Biegeleisen, я не совсем понимаю, как * можно передать из раскрывающегося меню с предустановленными вариантами? Можете ли вы привести пример?   -  person LearnAWK    schedule 19.07.2015
comment
Как насчет того, который плохо закодирован   -  person Drew    schedule 19.07.2015
comment
Как насчет приложения, которое подменяет ваше приложение и отправляет все, что хочет, в качестве параметров в http get?   -  person Drew    schedule 19.07.2015
comment
Вам даже не нужно приложение. Вы можете отправить get из консоли JavaScript. Или вы можете использовать SOAP UI, если чувствуете себя немного более дьявольски.   -  person Tim Biegeleisen    schedule 19.07.2015


Ответы (1)


Кто-то может повозиться с запросом и вручную вызвать URL-адрес с ...?pulldown_choice=WHATEVER_YOU_WANT (например, *).

Я, вероятно, только передал бы индекс и исправил параметры на стороне вашего сервера.

person user2084865    schedule 19.07.2015
comment
Я все время это делаю. Это далеко не редкость, но средний программист никогда об этом не думает. - person Drew; 19.07.2015
comment
Ваши комментарии для меня открытие. Я обязательно буду читать больше на эту тему. - person LearnAWK; 19.07.2015