Тема
Режим
Язык
Тема
Режим
Язык
Консультация
FREE Бесплатный аудит сайта за 15 мин Заказать →
NEW Остановили 2 млн атак credential stuffing Кейс →
Разборы атак и инструменты Telegram →
70% трафика могут быть ботами Проверить →
SOS Сайт под атакой? Поможем за 30 мин SOS →

HTTP Flood: как отличить ботов от реальных пользователей

HTTP Flood маскируется под легитимный трафик. Защита: fingerprinting, rate limiting, JS challenges, ML-классификация.

Почему HTTP Flood сложнее SYN Flood

SYN Flood легко детектить: аномальные паттерны на L4, spoofed IP. HTTP Flood — это валидные TCP-соединения с валидными HTTP-запросами. Атакующий использует реальные браузеры или продвинутые боты.

Типы HTTP Flood

  • GET Flood — простые GET на тяжёлые эндпоинты (/search, /catalog)
  • POST Flood — POST с payload на формы, API, загрузку
  • Slowloris — держит соединения открытыми, медленно отправляя данные

Многоуровневая защита

Rate Limiting (nginx)

limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;

server {
    limit_req zone=ip_limit burst=20 nodelay;
    limit_conn conn_limit 50;
}

JavaScript Challenge

Простые боты не выполняют JavaScript. Cloudflare JS Challenge / Managed Challenge отсеивают большинство ботов автоматически.

Fingerprinting

Собираем fingerprint браузера: canvas, WebGL, fonts, screen, timezone. Группируем запросы по реальным устройствам, детектируем эмуляторы.

Паттерны ботов vs людей

  • Время между запросами: человек — случайное (2-30 сек), бот — фиксированное (100ms)
  • Mouse movement: человек — да, бот — нет
  • JS execution: человек — да, бот — часто нет
  • Session depth: человек — 5-20 страниц, бот — 1-2 страницы

Что дальше?

Rate Limiting: защита APIWAF: полный гайдГлоссарий

Сложно разобраться? Закажите аудит защиты →

Получите план защиты под ваш сайт

Оставьте контакт и адрес сайта — пришлём план защиты и список приоритетных шагов.

  • Приоритетные шаги на 7 дней
  • Быстрая обратная связь
  • План в удобном формате
Без спама. Можно указать Telegram (@username) или email.
Написать в Telegram