
SQL-инъекция возникает, когда данные пользователя становятся частью команды к базе данных вместо отдельного значения. Последствия зависят от приложения и прав его учётной записи: от раскрытия информации до изменения данных. Владельцу сайта важно требовать исправление причины, а не только фильтрацию подозрительных символов.
Основной способ защиты
Для значений используют параметризованные запросы или безопасные механизмы доступа к данным. Простая склейка SQL-строки с пользовательским вводом опасна. Наличие ORM не исключает проблему, если разработчик вручную собирает необработанные запросы.
Некоторые элементы запроса, например направление сортировки, нельзя заменить обычным параметром значения. Для них выбирают допустимый вариант из заранее заданного списка, а не вставляют произвольный текст посетителя.
Что спросить у разработчика
- Как строятся запросы поиска, фильтров и административных отчётов?
- Есть ли ручные SQL-запросы в собственных модулях?
- Какие права имеет пользователь базы приложения?
- Показываются ли подробные ошибки базы посетителю?
- Как проверены исправления и повторные сценарии?
Почему WAF недостаточно
Фильтр может остановить часть известных шаблонов, но не меняет способ формирования запроса внутри программы. Поэтому его используют как дополнительный уровень или временную меру, а не вместо исправления кода. Ограничение прав базы также уменьшает последствия, но не устраняет саму инъекцию.
Как принять исправление
Нужны проверка затронутых мест, тесты на тестовой среде и обычные функциональные сценарии. Поиск должен корректно обрабатывать апострофы и другие допустимые символы, а не запрещать нормальные названия ради маскировки ошибки. Не проводите самостоятельные атакующие проверки рабочего магазина без согласования.
Если подтверждено использование уязвимости, устранение кода — только часть работы. Потребуется оценить обращения к базе, возможные изменения, затронутые секреты и необходимость восстановления. Сам факт закрытия уязвимости не отвечает на вопрос, были ли данные уже прочитаны или изменены.
Дополнительно: OWASP: предотвращение SQL-инъекций.
Читайте также
- Аудит безопасности сайта: какие уязвимости нужно проверить
- WAF для сайта: когда нужен и от каких атак защищает
- Как защитить API сайта от несанкционированного доступа
Если задача связана с вашим сайтом, можно обсудить проверку и доработку. Объём работ определяется после знакомства с проектом.


