🤩SQL-инъекции: как происходят атаки и как от них защититься Что такое SQL-инъекция? SQLi — это уязвимость, при которой пользовательский ввод может повлиять на SQL-запрос приложения

Проблема возникает, когда введённые пользователем данные напрямую подставляются в SQL. В результате злоумышленник может попытаться получить доступ к данным, изменить или удалить их

🤩 Как происходит атака?

Представим форму авторизации. Приложение получает логин и подставляет его в SQL-запрос

Если ввод пользователя не обрабатывается безопасно, вместо обычного значения можно передать конструкцию, которая изменит логику исходного запроса

То есть главная проблема — смешивание пользовательских данных и SQL-кода Симптомы SQLi-атаки 🚨

Иногда атака никак себя не выдаёт, но возможны:

  • необычно большое количество запросов
  • ошибки базы данных
  • странные сообщения или всплывающие окна
  • подозрительные перенаправления
  • неожиданные изменения данных

🤩 Типы SQL-инъекций In-band — результат атаки возвращается через тот же канал. Например, через ошибки или объединение запросов (UNION)

Blind SQLi — данные напрямую не возвращаются. Злоумышленник анализирует поведение системы: например, отличается ли ответ при разных условиях или меняется ли время ответа

Out-of-band — результат передаётся через другой канал, когда получить его обычным способом не получается

Как предотвратить? 🤩

Главные правила:

  • использовать параметризованные запросы
  • проверять и валидировать пользовательский ввод
  • не собирать SQL через конкатенацию строк
  • давать пользователям БД только необходимые права
  • осторожно работать с динамическим SQL
  • регулярно обновлять ПО и проверять приложение на уязвимости
  • для веб-приложений дополнительно использовать WAF

👍 Главное, что стоит запомнить: пользовательский ввод должен оставаться данными, а не становиться частью SQL-кода

🤩SQL-инъекции: как происходят атаки и как от них защититься
Что такое SQL-инъекция?
SQLi — это уязвимость, при которой пользовательский ввод может повлиять на SQL-запрос приложения
Проблема возникает,... | Сетка — социальная сеть от hh.ru 🤩SQL-инъекции: как происходят атаки и как от них защититься
Что такое SQL-инъекция?
SQLi — это уязвимость, при которой пользовательский ввод может повлиять на SQL-запрос приложения
Проблема возникает,... | Сетка — социальная сеть от hh.ru