← Решения Cloudflare по борьбе с ботами / bots / additional-configurations
Sequence rules
Sequence rules использует cookie для отслеживания порядка запросов пользователя и времени между запросами, а также предоставляет эти данные через Cloudflare Rules. Это позволяет писать правила, которые соответствуют допустимым или недопустимым последовательностям. Конкретные файлы cookie, используемые для проверки последовательностей, называются sequence cookies.
Предварительные требования
- На вашем аккаунте должна быть активна подписка Fraud Detection.
- В каждой зоне необходимо настроить отслеживаемые конечные точки с помощью Endpoint Management.
Вы можете создать пользовательское правило последовательности через панель управления Cloudflare или с помощью API.
Доступность
Эти поля последовательности доступны в:
- Custom rules (
http_request_firewall_customэтап) - Правила ограничения скорости (
http_request_ratelimit) - Bulk Redirects (
http_request_redirect) - Request Header Transform Rules (
http_request_late_transform)
| Название поля | Описание | Пример значения |
|---|---|---|
| Это поле содержит идентификатор операции, соответствующей текущему запросу. Если текущий запрос не соответствует ни одной операции, определённой в Endpoint Management, значением будет пустая строка. |
|
| Это поле содержит массив идентификаторов предыдущих операций в последовательности, упорядоченный от самой последней к самой ранней. Текущий запрос в него не включается. |
|
| Это поле содержит карту, в которой ключами являются идентификаторы операций, а значениями служит количество миллисекунд, прошедших с момента последнего выполнения этой операции. |
|
Создайте пользовательское правило типа «последовательность» в панели управления Cloudflare
-
На панели управления Cloudflare перейдите к разделу Правила безопасности страницу.
Перейдите в Правила безопасности ↗ -
Чтобы создать новое пустое правило, выберите Создать правило > Custom rules.
-
Введите описательное название правила в Название правила.
-
В разделе Когда входящие запросы соответствуют, используйте Поле раскрывающемся списке отфильтруйте по Последовательности и выберите один из вариантов:
- Текущая операция
- Предыдущие операции
- Прошедшее время
-
В разделе Значение, нажмите значок редактирования, чтобы открыть Builder и создать последовательность на боковой панели.
-
В разделе Выберите имя хоста для этой последовательности, выберите все хосты или конкретное имя хоста из раскрывающегося списка. При необходимости можно воспользоваться строкой поиска, чтобы найти нужное имя хоста.
-
Из раздела Методы раскрывающемся списке выберите все методы или конкретный метод запроса.
-
Установите флажок для каждой конечной точки в том порядке, в котором они должны появляться в последовательности.
-
Задайте время выполнения.
-
Выберите Save.
-
В разделе Затем выберите действие, выберите действие правила в Выберите действие раскрывающемся списке. Например, если выбрать Block указывает Cloudflare отклонять запросы, соответствующие заданным вами условиям.
-
(Необязательно) Если вы выбрали Block действия можно настроить пользовательский ответ.
-
В разделе Расположите на, выберите порядок срабатывания правила.
-
Чтобы сохранить и развернуть правило, выберите Развернуть. Если вы ещё не готовы развернуть правило, выберите Save as Draft.
Управляйте правилами последовательностей через API
Включение правил последовательностей
- Создание API-токена , если у вас его ещё нет. API-токен должен включать Zone > Выявление мошенничества > Изменить разрешение. 2. Получите ID зоны для зоны (зон), где вы хотите включить последовательные правила. 3. Добавьте конечные точки который хотите отслеживать в правилах последовательностей с помощью Endpoint Management в API Shield, и запишите короткий ID. 4. Включите cookie последовательности, добавив API-токен и zone ID в следующий вызов API.
curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{zone_id}/fraud_detection/sequence_cookies \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{"enabled": true}'- Используйте редактор выражений, чтобы писать правила на основе последовательностей или времени через пользовательские правила, правила ограничения частоты запросов, или transform rules. Для мониторинга эти правила можно перевести в режим только журналирования.
После включения правил последовательностей соответствующие поля будут заполнены, и вы сможете использовать новые поля в своих правилах.
Отключение правил последовательностей
При отключении правил последовательностей поля правил перестанут заполняться. Если у вас развёрнуты правила, которые зависят от этих полей, они могут работать не так, как ожидается. Перед отключением правил последовательностей удалите или отключите все правила, которые используют поля последовательностей.
Чтобы отключить правила последовательностей:
- Создание API-токена , если у вас его ещё
нет. API-токен должен включать Zone > Выявление
мошенничества > Изменить разрешение. 2. Получите
ID зоны для зоны (зон), где
вы хотите включить последовательные правила. 3. Добавьте
конечные точки который хотите отслеживать в
правилах последовательностей с помощью Endpoint Management в API Shield, и запишите
короткий ID. 4. Отключите cookie последовательности с помощью API-токена, zone ID
и установив
enabledкfalseв следующем вызове API.
curl --request PUT https://api.cloudflare.com/client/v4/zones/{zone_id}/fraud_detection/sequence_cookies \
--header "Authorization: Bearer <API_TOKEN>" \
--data '{"enabled": false}'Поля правил
Sequence rules добавляет три новых поля в Cloudflare Rules. Все эти поля ссылаются на операции по их короткому ID. Учетные записи с подпиской Fraud Detection могут посмотреть короткий ID, открыв сведения о конечной точке через API Shield > Endpoint Management в Cloudflare dashboard. Аккаунты без Fraud Detection не имеют доступа к этому полю.
Cloudflare хранит не более 10 последних операций в последовательности и не дольше одного часа. Если операций в последовательности больше 10, более старые операции удаляются и не включаются в следующие поля. Аналогично, если операция произошла более часа назад, она также не включается в следующие поля.
Примеры правил
Клиент должен обратиться к endpoint A прежде, чем к endpoint B.
cf.sequence.current_op eq "bbbbbbbb" and
any(cf.sequence.previous_ops[*] == "aaaaaaaa")cf.sequence.current_op eq "bbbbbbbb" and
not any(cf.sequence.previous_ops[*] == "aaaaaaaa")Клиент должен отправить запрос к конечной точке A как минимум за одну секунду до запроса к конечной точке B.
cf.sequence.current_op eq "bbbbbbbb" and
cf.sequence.msec_since_op["aaaaaaaa"] ge 1000cf.sequence.current_op eq "bbbbbbbb" and
not cf.sequence.msec_since_op["aaaaaaaa"] ge 1000Ограничения
Cloudflare поддерживает только запросы по HTTPS, так как наши файлы cookie устанавливают Secure атрибут.
Доступность
Sequence rules сейчас находится в закрытой бета-версии. Если вы хотите принять участие в бета-тестировании, обратитесь к своей команде по работе с клиентами.