Что такое Rate Limiting?
Rate Limiting в TrafficVeil
Rate Limiting ограничивает количество запросов, которые клиент может сделать за определённый период времени.
Зачем нужен Rate Limiting:
- Защита от DDoS атак
- Предотвращение брутфорс-атак
- Защита от скрейпинга
- Контроль нагрузки на сервер
- Справедливое распределение ресурсов
Типы лимитов:
- По IP адресу — лимит для каждого IP
- По User-Agent — лимит для каждого UA
- По URL — лимит для конкретных страниц
- Глобальный — общий лимит для домена
- По стране — лимит для географических регионов
Единицы измерения:
- Запросов в секунду (req/s)
- Запросов в минуту (req/m)
- Запросов в час (req/h)
- Запросов в день (req/d)
Лимиты по IP адресу
Настройка лимита по IP:
Базовые параметры:
- Лимит: количество запросов (например, 100)
- Период: временное окно (например, 1 минута)
- Действие: что делать при превышении
Пример: 100 запросов в минуту на IP
Если IP делает 101-й запрос в течение минуты — применяется действие.
Действия при превышении:
- Block — заблокировать на время
- Challenge — показать CAPTCHA
- Throttle — замедлить ответы
- Log — только логировать
Время блокировки:
- 1 минута (по умолчанию)
- 5 минут
- 15 минут
- 1 час
- 24 часа
- Бессрочно (до ручной разблокировки)
Алгоритмы:
- Sliding Window — скользящее окно (рекомендуется)
- Fixed Window — фиксированное окно
- Token Bucket — токены (для burst трафика)
Рекомендуемые значения:
- Обычный сайт: 60-120 req/min
- API: 30-60 req/min
- Логин: 5-10 req/min
- Поиск: 20-30 req/min
Лимиты по URL
Зачем нужны лимиты по URL:
Разные страницы имеют разную нагрузку и требования безопасности.
Примеры:
- /login — строгий лимит (5 req/min)
- /api/* — средний лимит (30 req/min)
- /search — умеренный лимит (20 req/min)
- /* — базовый лимит (100 req/min)
Настройка:
- Откройте Rate Limiting
- Нажмите "Добавить правило"
- Укажите URL паттерн
- Задайте лимит и действие
URL паттерны:
- Точное совпадение: /login
- Префикс: /api/*
- Regex: ^/user/[0-9]+$
- Wildcard: /products/*/reviews
Приоритет правил:
Правила применяются в порядке:
- Точное совпадение
- Regex
- Wildcard
- Глобальное правило
Специальные страницы:
Рекомендуется настроить отдельные лимиты для:
- Страницы авторизации
- Форма регистрации
- Восстановление пароля
- API endpoints
- Формы обратной связи
- Поиск
Продвинутые настройки
Комбинированные правила:
Можно комбинировать условия:
- IP + URL: 10 req/min на /login для каждого IP
- IP + UA: разные лимиты для мобильных и десктоп
- IP + Country: разные лимиты для стран
Исключения (Whitelist):
Освободите от лимитов:
- Собственные IP адреса
- IP партнёров и клиентов
- Платёжные системы
- Мониторинг (UptimeRobot, Pingdom)
- Поисковые боты
Динамические лимиты (Pro+):
Автоматическая адаптация лимитов:
- При высокой нагрузке — ужесточение
- При низкой нагрузке — ослабление
- При атаке — автоматическая блокировка
Burst режим:
Разрешить кратковременное превышение:
- Burst: 50 запросов
- После burst — стандартный лимит
- Полезно для AJAX-приложений
Географические лимиты:
Разные лимиты для разных стран:
- Ваша страна: 200 req/min
- Основные рынки: 100 req/min
- Остальные: 50 req/min
- Высокорисковые страны: 20 req/min
Ответы при блокировке
HTTP статус коды:
- 429 Too Many Requests — стандартный код (по умолчанию)
- 503 Service Unavailable — для скрытия защиты
- 403 Forbidden — запрещён доступ
Заголовки ответа:
- Retry-After: секунды до разблокировки
- X-RateLimit-Limit: лимит
- X-RateLimit-Remaining: осталось запросов
- X-RateLimit-Reset: время сброса
Кастомная страница блокировки:
Загрузите HTML страницу с вашим дизайном:
- Настройки домена → Rate Limiting
- Загрузить кастомную страницу
- Поддерживаются переменные: {{retry_after}}, {{ip}}
JSON ответ для API:
Для API endpoints возвращается JSON:
\\\`json
{
"error": "rate_limit_exceeded",
"retry_after": 60,
"limit": 100,
"remaining": 0
}
\\\`
CAPTCHA Challenge:
При действии "Challenge":
- Показывается CAPTCHA
- После прохождения — доступ восстанавливается
- Повторный CAPTCHA через N минут
Мониторинг и алерты
Статистика Rate Limiting:
- Общее количество ограничений
- Топ IP по ограничениям
- Топ URL по ограничениям
- График ограничений во времени
Уведомления:
Настройте алерты при:
- Более 100 ограничений в минуту
- Один IP заблокирован более 10 раз
- Подозрение на DDoS атаку
Каналы уведомлений:
- Telegram
- Webhook
Логи Rate Limiting:
Каждое ограничение логируется:
- Время
- IP адрес
- URL
- Правило, которое сработало
- Применённое действие
Анализ паттернов:
TrafficVeil анализирует паттерны и предлагает:
- Оптимизацию лимитов
- Добавление в whitelist легитимных IP
- Ужесточение лимитов для атакующих
Отчёты:
Еженедельный отчёт включает:
- Общая статистика Rate Limiting
- Топ-10 заблокированных IP
- Рекомендации по настройке