SQL-инъекция
Определение: SQL-инъекция — это атака на сайт, при которой злоумышленник подставляет в поля ввода или параметры URL вредоносный SQL-код, чтобы изменить запрос к базе данных и получить доступ к данным, обойти авторизацию или повредить информацию.
Зачем это нужно
- Понимать главную угрозу для форм, фильтров, поиска и любых страниц, где используются параметры.
- Защитить базу данных клиентов, заказов, пользователей и администраторов от утечки.
- Предотвратить обход авторизации (например, вход без пароля из-за неправильного запроса).
- Снизить риск удаления/подмены данных и остановки работы сайта.
- Правильно выбирать подход: безопасные запросы в коде + контроль ввода + дополнительные слои защиты (например, WAF).
Пример
Пример кода:
# ПЛОХО: запрос собирается строкой из пользовательского ввода
sql = "SEL ECT * FR OM users WH ERE email = '" + email + "' AND pass = '" + pass + "'"
# ХОРОШО: параметризованный запрос (подставляет значения безопасно)
sql = "SELECT * FR OM users WHERE email = ? AND pass = ?"
execute(sql, [email, pass])
Если собрать SQL-запрос «склейкой строк», злоумышленник может подставить специальные символы и фрагменты SQL так, чтобы запрос начал работать иначе. Параметризованные запросы отделяют код запроса от данных пользователя и обычно закрывают этот класс проблем.
Скриншот
Подпись к скриншоту: пример записи в логах (WAF/приложения), где видно подозрительный запрос с параметром, похожим на SQL-инъекцию, и действие блокировки.
Частые ошибки
- Пытаться «заэкранировать кавычки» и считать, что этого достаточно: обходов много, а контексты разные.
- Проверять ввод только на фронтенде (в браузере), но не валидировать на сервере.
- Использовать один и тот же пользователь БД с максимальными правами для всего сайта.
- Выводить пользователю подробные ошибки SQL — это помогает атакующему подбирать payload.
- Полагаться только на WAF и не исправлять уязвимый код.
Связанные термины
- WAF
- OWASP Top 10
- Валидация данных
- Параметризованные запросы
- Подготовленные выражения (prepared statements)
- Принцип наименьших привилегий
Наши услуги
- Доработка сайтов — устранение SQL-инъекций, перевод запросов на безопасные параметры, ревизия форм и фильтров.
- Техническая поддержка сайтов — обновления, контроль логов, настройка прав доступа и регулярные проверки безопасности.
- SEO-продвижение сайтов — помощь с восстановлением после взлома и «чисткой» проблем, которые мешают индексации (в связке с техработами).