Документация Запланировать пилот

Rate Limiting (предыдущая версия)

Cloudflare Rate Limiting автоматически выявляет и устраняет чрезмерную частоту запросов для конкретных URL-адресов или для домена целиком.

Частота запросов рассчитывается локально для каждого дата-центра Cloudflare. Наиболее распространённые случаи использования Rate Limiting:

Как только отдельный адрес IPv4 или IPv6 /64 диапазон IP-адресов превышает пороговое значение правила, дальнейшие запросы к исходному серверу блокируются с HTTP 429 код состояния ответа. Ответ включает Retry-After заголовок, чтобы указать, когда клиент может возобновить отправку запросов.

Ограничение скорости и SEO

Кэшированные ресурсы и известные краулеры поисковых систем исключены из ваших правил ограничения частоты запросов (только в предыдущей версии). Поэтому они не влияют на SEO-рейтинг.


Доступность

Количество разрешённых правил ограничения скорости зависит от плана домена:

План Правила Правила, соответствующие заголовкам ответа Действия Продолжительность действия Request Period
Free 1 1 Block 1 минута или 1 час 10 секунд или 1 минута
Pro 10 1 Block, Non-Interactive Challenge, Managed Challenge, Interactive Challenge или Log 1 минута или 1 час 10 секунд или 1 минута
Business 15 10 Block, Non-Interactive Challenge, Managed Challenge, Interactive Challenge или Log 1 минута, 1 час или 24 часа 10 секунд, 1 минута или 10 минут
Enterprise 100 10 Block, Non-Interactive Challenge, Managed Challenge, Interactive Challenge или Log Любая длительность от 10 до 86 400 секунд (24 часа) Любое значение от 10 до 3 600 секунд (1 час)

Cloudflare Rate Limiting поддерживает несколько уровней управления конфигурацией в зависимости от тарифного плана Cloudflare для домена. В таблице ниже показано, что вы можете делать в зависимости от своего плана:

Порядок Задача Доступно в
1 Настройка базового правила ограничения скорости Все тарифы
2 Настройка Advanced Criteria Планы Business и Enterprise
3 Настройка Advanced Response Планы Business и Enterprise
4 Настройка параметра Bypass Тариф Enterprise

Компоненты правила ограничения скорости

Правило ограничения скорости состоит из трёх отдельных компонентов:

Критерии сопоставления запроса

Входящие запросы сопоставляются по пути запроса, схеме запроса, методу запроса и, при необходимости, по коду ответа origin-сервера.

Путь запроса

Например:

Путь запроса не чувствителен к регистру. Шаблоны не могут соответствовать содержимому после строки запроса (?) или якоря (#). Звёздочка (*) соответствует любой последовательности символов, включая пустую последовательность. Например:

Запрос к example.com/path не совпадает с example.com/path/. Единственным исключением из этого правила является домашняя страница: example.com совпадает с example.com/.

Схема запроса

HTTP или HTTPS. Если ничего не указано, совпадение засчитывается для обоих значений, и в правиле будет указано __ALL__.

Метод запроса

POST или GET. Если ни один метод не указан, совпадение засчитывается для всех методов, и в правиле будет указано __ALL__.

(Необязательно) Код ответа origin-сервера

Например, чтобы правило ограничения скорости срабатывало только когда исходный сервер возвращает HTTP 401 или 403 код состояния. Сработавшее правило, соответствующее критериям кода ответа, блокирует последующие запросы от этого клиента независимо от кода ответа источника.

Критерии сопоставления скорости

Правило может учитывать количество и временной период всех запросов от одного и того же клиента.

Количество запросов

Укажите минимум два запроса. Чтобы заблокировать даже один запрос, сделайте путь недоступным: например, настройте исходный сервер так, чтобы он возвращал HTTP 403 код состояния.

Период запроса

Правило срабатывает, когда количество запросов клиента превышает порог за указанный промежуток времени.

Противодействие правила

Меры противодействия правила состоят из действия по устранению и длительности блокировки.

Действие по устранению

Действия ограничения скорости зависят от тарифного плана домена, как указано в Доступность:

Дополнительную информацию о действиях проверки см. в Challenges.

Продолжительность блокировки

Настройка таймаута короче порогового значения приведёт к тому, что API автоматически увеличит его до этого порогового значения.

Посетители, достигшие лимита скорости, получают стандартную HTML-страницу, если не указана пользовательская страница ошибки не указан. Кроме того, клиенты на тарифах Business и Enterprise могут указать ответ непосредственно в самом правиле. См. Настройка Advanced Response для получения подробностей.


Определение пороговых значений ограничения скорости

Чтобы определить общее пороговое значение для Cloudflare Rate Limiting, разделите количество запросов к сайту без кеширования за 24 часа на количество уникальных посетителей за те же 24 часа. Затем разделите результат на предполагаемую среднюю продолжительность посещения в минутах. Наконец, умножьте его на 4 (или большее число), чтобы получить примерное пороговое значение в минуту для своего сайта. Значение больше 4 вполне допустимо, поскольку большинство атак на порядок превышают обычный уровень трафика.

Чтобы определить ограничения скорости для конкретных URL-адресов, возьмите за основу данные о запросах без кеширования и уникальных посетителях за 24 часа для этого URL-адреса. Корректируйте пороговые значения на основе отзывов пользователей и собственного мониторинга.


Задача 1. Настройка базового правила ограничения скорости

Следующие разделы описывают два распространённых типа правил ограничения скорости.

Включение Protect your login

Rate Limiting предлагает функцию в один клик для Защита входа который создаёт правило, блокирующее клиента на 15 минут при отправке более 5 POST-запросов за 5 минут. Этого достаточно, чтобы заблокировать большинство попыток взлома методом перебора.

  1. Войдите в Панель управления Cloudflare ↗, и выберите свой аккаунт и домен.
  2. Перейдите в Безопасность > WAF > Правила ограничения скорости.
  3. В разделе Rate Limiting, выберите Защита входа.
  4. Введите Rule Name и Введите URL-адрес входа в Защита входа появившемся диалоговом окне.
  5. Выберите Save.
  6. Rule Name отображается в вашем Rate Limiting список правил.

Создание пользовательского правила ограничения скорости

  1. Войдите в Панель управления Cloudflare ↗, и выберите свой аккаунт и домен.

  2. Перейдите в Безопасность > WAF > Правила ограничения скорости.

  3. Выберите Создание правила ограничения скорости. Откроется диалоговое окно, в котором вы укажете параметры нового правила.

    Всплывающее диалоговое окно создания правила ограничения скорости с примером конфигурации правила. Правило блокирует запросы с IP-адресов, которые превышают 150 запросов в минуту, в течение одного часа.
  4. Введите описательное название правила в Rule Name.

  5. Для Если трафик соответствует URL-адресу, выберите схему HTTP из раскрывающегося списка и введите URL-адрес.

  6. В с одного IP-адреса превышает, введите целое число больше 1, обозначающее количество запросов за период выборки.

  7. Для запросов в, выберите период выборки (период, в течение которого подсчитываются запросы). Для доменов на плане Enterprise можно вручную ввести любую продолжительность от 10 до 3,600 секунд (один час).

  8. Для Затем, выберите одно из доступных действий в зависимости от вашего тарифного плана. См. Противодействие правила раздел для получения подробной информации.

  9. Если вы выбрали Block или Log, для трафик от этого посетителя, соответствующий условию, в течение, выберите, как долго применять этот параметр после срабатывания порогового значения. Для доменов на плане Enterprise можно ввести любое значение от 10 до 86,400 секунд (24 часа).

  10. Чтобы активировать новое правило, выберите Save and Deploy.

Новое правило появится в списке правил ограничения скорости.

В целом, при установке более низкого порогового значения:

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

Если вы настраиваете более высокое пороговое значение (из-за блокировки легитимных клиентов), увеличьте его прямо в существующем правиле.


Задача 2. Настройка Advanced Criteria (только для планов Business и Enterprise)

Advanced Criteria опция определяет, какие методы HTTP, заголовки ответов и коды ответа origin-сервера должны соответствовать вашему правилу ограничения скорости.

Чтобы настроить дополнительные критерии для нового или существующего правила:

  1. Развернуть Advanced Criteria.

    Доступные поля при настройке Advanced Criteria для правила ограничения скорости.
  2. Выберите значение из Метод(ы). Значение по умолчанию: ANY, который соответствует всем методам HTTP.

  3. Фильтр по HTTP-заголовок(и) ответа. Выберите Добавьте поле заголовка ответа чтобы включить заголовки, возвращаемые вашим исходным веб-сервером.

    CF-Cache-Status заголовок отображается по умолчанию, поэтому Cloudflare отдаёт кэшированные ресурсы вместо того, чтобы применять к ним ограничение частоты запросов. Чтобы ограничение частоты запросов действовало и на кэшированные ресурсы, уберите этот заголовок, выбрав X или включите Также применять лимит скорости к кешированным ресурсам.

    Если у вас несколько заголовков в разделе HTTP-заголовок(и) ответа, AND применяется булева логика. Чтобы исключить заголовок, используйте Not Equals опцию. Регистр каждого заголовка не учитывается.

  4. В разделе Origin Response code(s), введите числовое значение каждого кода ответа HTTP для сопоставления. Если кодов несколько, разделяйте их запятой (например: 401, 403).

  5. (Необязательно) Настройте дополнительные функции ограничения скорости в зависимости от вашего тарифа.

  6. Выберите Save and Deploy.


Задача 3. Настройка Advanced Response (только для планов Business и Enterprise)

Advanced Response опция определяет формат информации, которую Cloudflare возвращает при превышении порогового значения правила. Используйте Advanced Response если вы хотите возвращать статический текст или содержимое JSON.

Чтобы настроить ответ в формате обычного текста или JSON:

  1. Развернуть Advanced Response.

    Доступные поля при настройке Advance Response для правила ограничения скорости.
  2. Выберите Тип ответа формат, отличный от стандартного: Пользовательский JSON или Пользовательский TEXT.

  3. Введите текстовый или JSON-ответ, который вы хотите вернуть. Максимальный размер ответа составляет 32 КБ.

  4. (Необязательно) Настройте дополнительные функции ограничения скорости в зависимости от вашего тарифа.

  5. Выберите Save and Deploy.

Использование пользовательской HTML-страницы или редиректа

Если вы хотите показывать пользовательскую HTML-страницу, настройте пользовательскую страницу для HTTP 429 ошибки (Too many requests) в панели управления. Cloudflare покажет эту страницу, когда вы выберете Default Cloudflare Rate Limiting Page в Тип ответа (значение по умолчанию для этого поля).

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

  1. Создайте HTML-страницу на вашем сервере, которая будет перенаправлять на конечный URL страницы, которую вы хотите отобразить. Добавьте meta refresh ↗ тег в содержимом страницы, как показано в следующем примере:

    <!doctype html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<title>Custom RL page</title>
    		<meta
    			http-equiv="refresh"
    			content="0; url='https://yourzonename/block'"
    		/>
    	</head>
    
    	<body></body>
    </html>

    Запишите публичный URL созданной страницы.

  2. На панели управления Cloudflare перейдите к разделу Настройки страницу.

    Перейдите в Конфигурации ↗
  3. Перейдите в Error Pages.

  4. Рядом с Блокировка Rate Limiting, выберите три точки > Изменить.

  5. Выберите Пользовательская страница.

  6. В Адрес пользовательской страницы, введите URL-адрес страницы, которую вы создали на своем сервере, то есть страницы, содержащей meta refresh тег.

  7. Выберите Save.

Используйте тот же подход, если требуется вернуть содержимое в виде обычного текста или JSON, но размер ответа превышает 32 KB. В этом случае URL перенаправления будет URL ресурса с обычным текстом или JSON, который нужно отобразить.


Задача 4. Настройка опции Bypass (только для плана Enterprise)

Bypass создаёт список разрешений или исключение, благодаря которому ни одно действие не применяется к определённому набору URL-адресов, даже если лимит частоты запросов достигнут.

Чтобы настроить Bypass:

  1. Развернуть Bypass.

  2. В Правило обхода для этих URL-адресов, введите URL-адрес (или адреса), которые нужно исключить из правила ограничения скорости. Указывайте каждый URL-адрес на отдельной строке. Если в URL-адресе указан HTTP или HTTPS, эта часть автоматически удаляется при сохранении правила, и правило начинает применяться как к HTTP, так и к HTTPS.

    Настройка двух URL-адресов для пропуска в правиле ограничения скорости (по одному на строку).
  3. (Необязательно) Настройте дополнительные функции ограничения скорости в зависимости от вашего тарифа.

  4. Выберите Save and Deploy.


Аналитика

Просматривайте аналитику ограничения скорости для вашей зоны в Аналитика и журналы > Безопасность. В аналитике Rate Limiting сплошные линии обозначают трафик, который соответствует смоделированным запросам, а пунктирные линии обозначают фактически заблокированные запросы. Логи, создаваемые правилом ограничения скорости, доступны только клиентам Enterprise через Cloudflare Logs.

Cloudflare возвращает HTTP 429 для заблокированных запросов. Сведения о заблокированных запросах по каждому местоположению доступны клиентам с планом Enterprise в разделе Коды состояния в дашборде аналитики, доступном по адресу Аналитика > Трафик.


Порядок выполнения правил

Правила ограничения скорости оцениваются в порядке от самого недавно созданного до самого старого.

Например, если запрос соответствует следующим двум правилам:

Тогда правило #2 сработает первым, так как оно было создано последним.

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


Ограничения

Rate Limiting предназначен для сдерживания всплесков трафика, превышающих заданную пользователем скорость. Система не гарантирует, что до исходного сервера дойдёт строго определённое число запросов: между обнаружением запроса и обновлением внутреннего счётчика может возникать задержка. Из-за этой задержки, которая способна достигать нескольких секунд, часть избыточных запросов может успеть дойти до источника ещё до применения такого действия, как блокировка или проверка.


Запросите бесплатный пилот

Запланировать пилот