Яндекс.Метрика
Москва, Волгоградский пр-т,
43к3, оф. 301
Пишите 24/7, мы онлайн
+7 (495) 128-00-14
последнее обновление: 17.12.2025

Определение: 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 или сервера с заблокированным запросом: параметр URL или поле формы содержит подозрительный SQL-фрагмент, статус 403 и причина SQLi

Подпись к скриншоту: пример записи в логах (WAF/приложения), где видно подозрительный запрос с параметром, похожим на SQL-инъекцию, и действие блокировки.

Частые ошибки

  • Пытаться «заэкранировать кавычки» и считать, что этого достаточно: обходов много, а контексты разные.
  • Проверять ввод только на фронтенде (в браузере), но не валидировать на сервере.
  • Использовать один и тот же пользователь БД с максимальными правами для всего сайта.
  • Выводить пользователю подробные ошибки SQL — это помогает атакующему подбирать payload.
  • Полагаться только на WAF и не исправлять уязвимый код.

Связанные термины

  • WAF
  • OWASP Top 10
  • Валидация данных
  • Параметризованные запросы
  • Подготовленные выражения (prepared statements)
  • Принцип наименьших привилегий

Наши услуги

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