По каким ключам считать
| Ключ | Когда подходит |
|---|---|
| IP-адрес | Простые атаки и переборы с небольшого числа адресов |
| Подсеть /24 или автономная система | Атаки с арендованных серверов: адресов много, но они в одной сети |
| Отпечаток TLS и заголовков | Атаки через прокси: адреса разные, а клиентская программа одна |
| Ключ API или токен пользователя | Защита API от перерасхода и злоупотреблений конкретным клиентом |
| Сессия после проверки браузера | Ограничение действий одного посетителя |
Типовые лимиты
- Вход в личный кабинет: не больше 5–10 попыток в минуту на учётную запись и на источник.
- Восстановление пароля и SMS-коды: несколько запросов в час — защита от SMS-бомбинга и расходов на рассылку.
- Поиск и фильтры каталога: десятки запросов в минуту на сессию.
- Оформление заказа и формы заявок: единицы в минуту — защита от спама и накрутки.
- API: по тарифу клиента, с отдельным лимитом на «тяжёлые» методы.
Что происходит при превышении
Реакция выбирается под ситуацию. Мягкий вариант — проверка браузера или задержка ответа. Жёсткий — ответ 429 с заголовком Retry-After. Для API это стандартное поведение, которое правильно обрабатывают клиентские библиотеки. Для форм входа — временная блокировка источника с нарастающим сроком.
Плавающее окно вместо фиксированного
Счётчик «за минуту», сбрасывающийся в начале каждой минуты, позволяет обойти лимит: отправить пачку в конце одной минуты и в начале следующей. Плавающее окно считает запросы за последние 60 секунд в любой момент времени, поэтому такой обход не работает.
Правило: путь /login, метод POST
Ключ: IP + логин из тела запроса
Лимит: 5 за 60 секунд, 20 за час
При превышении: блокировка на 15 минут, при повторе — на часВопросы и ответы
Не заблокирует ли лимит офис, где все сидят за одним IP?
Поэтому основной ключ для посетителей — сессия после проверки браузера, а не IP. Лимит по IP используется как дополнительный и с запасом. Для своего офиса можно добавить исключение.
Можно ли менять лимиты без программиста?
Да, правила настраиваются в личном кабинете. Для типовых разделов есть готовые шаблоны.
Читайте также
- ВозможностиЗащита формы входа от перебора паролейОтражение перебора и подстановки паролей из утечек
- ВозможностиЗащита API от DDoS, ботов и злоупотребленийЛимиты по ключам, схема запросов, защита мобильных приложений
- База знанийНастройка limit_req и limit_conn в nginxЛимиты запросов и соединений в nginx