Что это
Правило «не больше N запросов за время». Защищает сайт и бота от перебора паролей и спама, а интеграцию — от бана со стороны чужого сервиса, если обращаться к нему слишком часто.
Как используем
После переезда с Joomla страница входа WordPress принимает не больше 20 запросов в минуту, бриф на сайте студии — не больше трёх заявок за 10 минут с адреса, электронная очередь — один запрос в 0,5 секунды. ToshaMusic ограничивает параллельные загрузки, чтобы аккаунт стриминга не забанили.
Где это нужно бизнесу
- На страницу входа в админку подбирают пароли.
- Форму заявки на сайте заваливают спамом боты.
- Пользователь быстро жмёт кнопки, и бот обрабатывает одно действие несколько раз.
- Чужой сервис банит аккаунт, если обращаться к нему слишком часто.
Как мы это используем
- Вход в WordPress. После переезда с Joomla на входном nginx не больше 20 запросов в минуту к странице входа, а после трёх неверных паролей вход с адреса закрывается на 15 минут, при повторе — на час и на сутки.
- Вход в магазин. В интернет-магазине после 5 неверных паролей подряд вход для логина закрывается на 15 минут, независимо от адреса.
- Бриф без капчи. На сайте студии — не больше трёх заявок за 10 минут с одного адреса, плюс скрытое поле-ловушка и отказ заявкам, отправленным быстрее четырёх секунд.
- Кнопки в боте. В электронной очереди — не больше одного запроса в 0,5 секунды от пользователя.
- Свой аккаунт в чужом сервисе. ToshaMusic ограничивает параллельные загрузки (по умолчанию две), общую очередь и задачи на пользователя, чтобы аккаунт стриминга не забанили.
Типичные проблемы
- Лимит по IP не спасает. Пароль подбирают с разных адресов, поэтому в магазине блокировка считается по логину.
- Счётчик в памяти. Счётчики брифа и очереди живут в памяти процесса и сбрасываются при перезапуске.
Когда это не нужно
Закрытому сервису, доступному только по списку Telegram-ID, перебор паролей не грозит. Но ограничение для своих же запросов к чужим API нужно почти всегда.