есть ли шанс внедрения SQL через selectbox (динамически создаваемый или статический) - PullRequest
0 голосов
/ 21 мая 2010

Я хочу знать, есть ли вероятность внедрения SQL через опции selectbox?если да, то покажите ли вы какую-либо демонстрацию (или обратитесь по любой ссылке).а также скажите мне, как мы можем предотвратить внедрение sql в selectbox. (используя PHP MYSQL)

еще один: если я создаю selectbox динамически (на основе параметров другого блока выбора), тоЕсть ли шанс SQLinjection?

Спасибо.

Ответы [ 3 ]

7 голосов
/ 21 мая 2010

Да. Злоумышленник может просто создать свою собственную HTML-форму и опубликовать ее на свой URL. Есть даже плагин для Firefox (панель инструментов веб-разработчика), который может изменить поле выбора на текстовое поле на любой странице.

Вы никогда не можете доверять данным, отправленным браузером ($ _GET, $ _POST, $ _COOKIE, $ _REQUEST). Всегда очищайте ваши данные.

2 голосов
/ 21 мая 2010

Да, все еще существует вероятность внедрения SQL с помощью поля выбора. После обратной передачи клиент может фактически поместить все, что ему нравится, в поле для поля выбора, ему не нужно быть одним из значений в списке .

Вы всегда должны проверять свой ввод, независимо от того, откуда он поступил. Теперь, кроме «стандартной» защиты от SQL-инъекций (например, параметризованных запросов и т. Д.), В поле выбора можно добавить дополнительную проверку, чтобы возвращаемое значение действительно было одним из значений, которые мы в списке в первую очередь (это предполагает, что у вас нет javascript на клиенте, который, конечно, изменяет список возможных значений).

0 голосов
/ 21 мая 2010

Инъекция осуществляется не через форму, а через PHP, который обрабатывает форму. Человек может отправить любые произвольные данные в виде пары имя / значение в ваш код, и у вас не будет возможности узнать, получены ли они из поля выбора, поля ввода или просто были созданы на месте. Всегда проверяет любые данные, которые поступают из формы. Всегда предполагайте, что это скомпрометировано.

Поле выбора помогает в том, что вы знаете, какие значения должны быть отправлены. Если отправленное значение находится не в этом небольшом наборе, то вы знаете, что происходит что-то смешное, и вы можете безопасно отбросить все входные данные и выдать ошибку. Хорошо проверить все, что входит в ваш код и из него. В противном случае вы настраиваете себя на неприятности, возможно, даже на то, что вы сделали случайно.

...