Финансовый риск
От 50 000 до 300 000 рублей в час из-за недоступности сайта для клиентов при атаке на прикладном уровне (L7), перерасхода ресурсов CPU/RAM хостинга.
Влияние на KPI
Снижение конверсии заказов. Медленный отклик сайта (TTFB) ухудшает поведенческие факторы и пессимизирует поисковый трафик из Google и Яндекса.
Уровень критичности
Высокий
Кому поручить
DevOps-инженер / Бэкенд-разработчик
Rate-limit — первая линия защиты от ботов, брутфорса и простых DDoS-атак. Настраивается за 10 минут, работает годами.
flowchart TD
Req[Запрос] --> Check{Лимит?}
Check -->|"OK"| Allow[Пропустить]
Check -->|"Превышен"| Burst{Burst?}
Burst -->|"OK"| Queue[В очередь]
Burst -->|"Нет"| Reject[429 Error]
Queue --> Allow
Базовая настройка
http {\n # Зона для общих запросов: 10 req/sec на IP\n limit_req_zone $binary_remote_addr zone=general:10m rate=10r/s;\n \n # Зона для логина: 1 req/sec (жёстко)\n limit_req_zone $binary_remote_addr zone=login:10m rate=1r/s;\n \n # Зона для API: 30 req/sec\n limit_req_zone $binary_remote_addr zone=api:10m rate=30r/s;\n \n # Зона для поиска: 5 req/sec\n limit_req_zone $binary_remote_addr zone=search:10m rate=5r/s;\n}
Применение к location
# Защита логина (WordPress)\nlocation = /wp-login.php {\n limit_req zone=login burst=3 nodelay;\n # ... остальные директивы\n}\n\n# Защита админки\nlocation /wp-admin/ {\n limit_req zone=login burst=5 nodelay;\n # ... остальные директивы\n}\n\n# Защита API\nlocation /api/ {\n limit_req zone=api burst=50 nodelay;\n proxy_pass http://backend;\n}\n\n# Защита поиска\nlocation /search {\n limit_req zone=search burst=10 nodelay;\n # ...\n}
10 запросов в секунду с одного IP. Если больше — nginx вернёт 503.
«Запас» запросов. burst=20 разрешает всплеск до 20 запросов сверх лимита. Полезно для реальных пользователей.
Без nodelay nginx задерживает запросы в очереди. С nodelay — сразу 503. Для защиты лучше nodelay.
limit_req_log_level warn; чтобы видеть в логах, когда срабатывают лимиты.Скопируйте эти вопросы и отправьте вашему техническому директору (CTO) или руководителю разработки:
- Настроена ли WAF-фильтрация для отсечения ботов с помощью JS-челленджей без показа капчи реальным пользователям?
- Защищен ли веб-сервер от атак типа Slowloris путем оптимизации HTTP Keep-Alive таймаутов?
- Проверено ли наше приложение на защиту от атак типа HTTP Request Smuggling и отравления кэша?
Словарь по теме
Rate Limiting
Ограничение количества запросов с одного IP-адреса за определённый период времени. Первая линия защиты от ботов, брутфорса и простых DDoS-атак.
Endpoint
URL-адрес, по которому доступен определённый ресурс или функция API. Например: /api/users, /login.
nginx
Популярный веб-сервер и reverse proxy. Используется для раздачи статики, балансировки нагрузки, терминации SSL.
DDoS
Распределённая атака на отказ в обслуживании. Множество устройств одновременно отправляют запросы на сервер, перегружая его и делая недоступным для легитимных пользователей.
RPS
Requests Per Second — количество HTTP-запросов в секунду. Ключевая метрика нагрузки на сервер.
XSS
Cross-Site Scripting — атака через внедрение вредоносного JavaScript-кода на страницу сайта. Позволяет красть cookies, перехватывать данные пользователей.
WAF
Web Application Firewall — межсетевой экран для веб-приложений. Фильтрует HTTP-трафик, блокирует SQL-инъекции, XSS, и другие атаки на прикладном уровне.