Я нашел $ _GET [‘var’] == оператор SQL — Каковы риски?

Я обнаружил, что некоторый старый (2009) код, написанный для веб-сайта, при определенных обстоятельствах в поисковом запросе сохранял SQL как переменную $ _GET!

Когда поиск был выполнен, детали POSTED и затем очищены, и результаты разбиты на страницы с предложением LIMIT в MySQL. Если существует более одной страницы (то есть +30 результатов), страницы являются ссылками в HTML с помощью GET-переменной, содержащей оператор SQL.

Я знаю, это абсолютно не способ сделать это. Это старый код, я только что видел его случайно. Это должно быть исправлено.

Итак, я исправил, продезинфицировал и использовал альтернативный метод для перезагрузки SQL, НО:

Мой вопрос таков:

На странице выводятся данные, относящиеся к миниатюрным изображениям, все данные выводятся в виде именованного массива var (исходное предложение SELECT * предложение), поэтому, если кто-то злоупотребляет переменной GET, сама страница выведет только названные столбцы,

Мне удалось УДАЛИТЬ строки из БД с использованием злоупотребления GET, я хотел бы думать, что злоупотребление эффективно только в том случае, если результат не связан с каким-либо возвращаемым выводом (например, УДАЛИТЬ), но я не знаю; поэтому, учитывая, что пользователь может вводить что угодно в предложение GET, но получать только отображаемый вывод того, что закодировано (то есть именованные столбцы в массиве из 30 строк), — какие еще злоупотребления могут быть открыты для этой зияющей дыры?

Дополнительная информация: код MySQLi

0

Решение

Инструмент как SQLMAP вероятно, может взять на себя весь сервер и делать с ним все, что хочет пользователь.

Неанализованный ввод в базу данных больше даже не взламывает, а ждет, пока кто-нибудь запустит скрипт на вашем компьютере и с этого момента станет его владельцем.

2

Другие решения

Что может сделать злоумышленник, зависит от конфигурации вашей базы данных и доступа пользователей базы данных. Если вы создаете нового пользователя с разрешением только ВЫБРАТЬ эту одну указанную таблицу и используете этого пользователя для этого конкретного сценария, вред, который он может сделать, — это чтение данных из этой таблицы.

Тем не менее, это плохая практика. Никогда не используйте это.

1