Има ли падащо меню риск от инжектиране на 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
Правя това през цялото време. Далеч не е необичайно, но средният програмист никога не мисли за това imo - person Drew; 19.07.2015
comment
Вашите коментари ми отварят очите. Определено ще прочета повече по тази тема. - person LearnAWK; 19.07.2015