Назовите и кратко опишите основные виды атак на веб-приложения

«Назовите и кратко опишите основные виды атак на веб-приложения» — вопрос из категории Безопасность, который задают на 10% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основные виды атак на веб-приложения включают:

  1. SQL-инъекция (SQL Injection) Внедрение вредоносного SQL-кода через поля ввода, что позволяет атакующему получить несанкционированный доступ к базе данных, изменять или удалять данные.

    • Защита: Использование параметризованных запросов (prepared statements) или ORM.
    -- Уязвимый код
    query = "SELECT * FROM users WHERE name = '" + userName + "';"
    -- Пример инъекции, если userName = "' OR 1=1 --"
  2. Межсайтовый скриптинг (XSS, Cross-Site Scripting) Внедрение вредоносного JavaScript-кода на страницу, который выполняется в браузере другого пользователя. Может использоваться для кражи сессионных cookie, редиректа на фишинговые сайты или изменения содержимого страницы.

    • Защита: Экранирование (escaping) всего пользовательского вывода, использование заголовка Content-Security-Policy (CSP).
  3. Межсайтовая подделка запроса (CSRF, Cross-Site Request Forgery) Атака, заставляющая браузер аутентифицированного пользователя выполнить нежелательное действие на сайте (например, сменить пароль, совершить перевод средств). Атакующий подготавливает специальную ссылку или форму на своем сайте.

    • Защита: Использование анти-CSRF токенов для каждого запроса, изменяющего состояние.
  4. Отказ в обслуживании (DoS/DDoS) Перегрузка сервера большим количеством запросов с целью сделать его недоступным для легитимных пользователей. DDoS-атака выполняется с множества устройств (ботнета).

    • Защита: Ограничение количества запросов (rate limiting), использование CDN и специализированных сервисов защиты.
  5. Человек посередине (MITM, Man-in-the-Middle) Атакующий перехватывает и, возможно, изменяет трафик между клиентом и сервером. Особенно опасно в незащищенных Wi-Fi сетях.

    • Защита: Использование шифрования трафика с помощью протокола HTTPS (TLS/SSL).