На главную

Ограничение частоты запросов: как выбрать лимит

Как подобрать лимит запросов по IP, проверить его на обычном трафике и избежать блокировки посетителей за общим адресом.

Ограничение частоты запросов, или rate limiting, задаёт допустимое число обращений за период. Оно помогает сдерживать повторяющиеся запросы к сайту и API. Превышение лимита говорит о частоте обращений, но само по себе не доказывает, что перед вами бот.

Сначала определите, что вы считаете

Одна загрузка страницы может вызвать десятки обращений за изображениями, шрифтами и скриптами. Лимит в 20 запросов в минуту для всех ресурсов отличается от такого же лимита только для поиска по каталогу. Перед выбором числа проверьте, какие запросы попадают в счётчик.

Сравните обычный просмотр сайта, вход в аккаунт, работу API и фоновые интеграции. У этих сценариев разные частота и стоимость. Отдельно проверьте пиковые периоды: среднее за сутки скрывает короткие всплески.

Как подобрать порог

  1. По журналам сервера посчитайте запросы с одного IP за выбранное окно, например за минуту. Учитывайте часы пик и активных посетителей.
  2. Найдите причины самых больших всплесков: загрузка страницы, повторные попытки приложения, интеграция или последовательный обход URL.
  3. Выберите порог с запасом относительно допустимых сценариев. Не переносите число с другого сайта без проверки.
  4. Начните с наблюдения: отмечайте превышения, сохраняя доступ. Проверьте, какие реальные действия попали бы под ограничение.
  5. Включайте блокировку после разбора срабатываний. После изменения фронтенда или клиентского приложения проверьте порог снова.

Пример фиксированного окна

Условный лимит — 120 запросов с одного IP за 60 секунд. Первое обращение открывает окно. Запросы с 1-го по 120-й укладываются в лимит; 121-й до истечения окна считается превышением. После завершения окна начинается новый счётчик. Это учебный пример, а не рекомендуемая настройка для любого сайта.

Фиксированное окно допускает всплеск на границе: запросы в конце одного окна и в начале следующего могут пройти с небольшим интервалом. Если вам нужна строгая равномерность, одного такого счётчика недостаточно.

Почему лимит по IP может задеть посетителей

Офис, мобильная сеть или VPN могут объединять несколько людей за одним публичным адресом. Их запросы складываются. Поэтому высокий счётчик не равен высокой активности одного пользователя. Смена IP, наоборот, позволяет распределить автоматические обращения между несколькими счётчиками.

За прокси или CDN проверьте, какой адрес получает система ограничения. Если она видит только IP прокси, все посетители делят один лимит. Доверять заголовку с адресом можно только от настроенных доверенных прокси: произвольный клиент способен подставить собственное значение.

Что означает ответ 429

HTTP 429 сообщает клиенту о превышении частоты. Сервер может добавить Retry-After, чтобы указать время ожидания. Клиенту стоит выдержать паузу и ограничить повторные попытки. Сам код не определяет, по какому признаку сервер считает запросы. Подробности — в RFC 6585, раздел 4.

Это общая рекомендация для HTTP-интеграции. Решение фильтра Fraudly само по себе не гарантирует конкретный HTTP-код или наличие Retry-After.

Как это устроено в Fraudly

Проверка частоты использует фиксированное окно отдельно для сайта и IP. В режиме наблюдения превышение отмечается, а запрос проходит; в режиме защиты нарушение становится основанием для блокировки. Все переданные на проверку запросы учитываются, включая статику — это нужно учитывать при подключении и выборе порогов.

Для известного нежелательного источника изучите блокировку IP и подсетей. Если причина всплеска пока неизвестна, начните с диагностики ботов.

Держите трафик под контролем

Fraudly проверяет запросы по правилам доступа и лимитам. Оставьте email, чтобы узнать о запуске.

Записаться в список ожидания