← Challenges / cloudflare-challenges
Precursor
Precursor представляет собой клиентскую систему проверки на уровне сессии, которая непрерывно оценивает поведение посетителя с течением времени. Вместо того чтобы полагаться на одно событие Challenge, Precursor выполняет в браузере постоянную проверку и выявляет автоматизацию, которая выглядит легитимной в отдельных запросах, но проявляет нечеловеческие закономерности на протяжении всей сессии.
Как это работает
Precursor работает как непрерывный цикл проверки на стороне клиента:
- На страницу внедряется клиентский скрипт
- Скрипт непрерывно собирает сигналы и выполняет проверку
- Каждый запуск генерирует сигналы, которые оценивает Cloudflare
- Результаты используются для обновления состояния сессии, хранящегося в
cf_clearancecookie - Процесс повторяется на протяжении всей сессии
Это позволяет Cloudflare непрерывно оценивать поведение в рамках сессии с течением времени.
Начало работы
Включите Precursor для своей зоны:
-
В панели управления Cloudflare выберите свою зону.
-
Перейдите в Безопасность > Настройки.
-
Найдите Precursor.
-
Включите Precursor.
-
Выберите режим: Чтобы полностью подтвердить сессию пользователя, посетителю может потребоваться пройти облегченную проверку Challenge для установления действительной сессии. Precursor предлагает два режима в зависимости от того, что важнее: удобство пользователя или строгая проверка:
-
Minimize Friction (default) Не показывает посетителю промежуточную проверку Challenge. Вместо этого Precursor пытается незаметно установить состояние сессии в фоновом режиме. Это обеспечивает более комфортный пользовательский опыт, но не гарантирует, что каждая сессия будет полностью проверена.
-
Maximize Security (recommended) Показывает облегченную промежуточную проверку Challenge, чтобы установить действительную сессию, если она еще не существует. Это гарантирует, что каждая сессия будет проверена, прежде чем пользователь сможет продолжить работу, но может создавать дополнительные неудобства.
-
Большинству клиентов достаточно выбрать режим: другая настройка не требуется.
Precursor Rules (optional)
По умолчанию Precursor работает во всей вашей зоне. Precursor Rules не включают и не отключают Precursor: они лишь определяют, какой режим применяется к каждому запросу.
Например:
- Запустите Minimize Friction на всем сайте, но выполнять Maximize Security чтобы обеспечить действительную сессию для
/checkout. - Запустите Maximize Security на всех страницах, кроме главной.
Использование Precursor с API
Если ваша зона обслуживает одновременно страницы браузера и конечные точки API, используйте Precursor Rules, чтобы ограничить область строгого применения проверки.
Когда для Precursor задано значение Maximize Security, запросы должны предъявлять действительный cf_clearance cookie. Это может повлиять на:
- Конечные точки API, которые вызывают клиенты не из браузера (например,
curl, мобильных бэкендов, заданий между серверами) - Вызовы API браузера, которые не отправляют куки
Для смешанного трафика HTML и API используйте один из следующих подходов:
- Начните с Minimize Friction глобально, а затем примените Maximize Security только к важным страницам или путям с помощью Precursor Rules.
- Начните с Maximize Security глобально, а затем добавьте Minimize Friction Precursor Rules для хостов API или путей API.
Для запросов браузера через XHR или fetch, которым необходим доступ к конечным точкам в Maximize Security, убедитесь, что cookie передаются:
fetch("/api/search", {
credentials: "include",
});axios.get("/api/search", {
withCredentials: true,
});Используйте Minimize Friction на конечных точках, для которых принудительная проверка сессии не требуется. Precursor по-прежнему анализирует поведение сессии и продолжает предоставлять сигналы обнаружения и данные о показателе бота.
Связь с JavaScript Detections
Precursor приходит на смену JavaScript Detections (JSD). И JSD, и Precursor собирают сигналы на стороне клиента, но Precursor оценивает их непрерывно на протяжении всей сессии, а не разово.
- Precursor переходит от разового выполнения к непрерывной проверке
- Precursor вводит состояние на уровне сессии
- Precursor обеспечивает динамическое управление во время выполнения
Когда в оценку бота вносят вклад JSD или Precursor, Cloudflare указывает источник как Снятие отпечатков JavaScript.
Если вы уже используете JSD
При включении Precursor Cloudflare отключает JSD, чтобы обе функции не работали на одном и том же трафике одновременно. Precursor охватывает все обнаружения, которые раньше выполнял JSD, поэтому правила безопасности, основанные на JSD, продолжат действовать.
Если вы не используете JSD
Если вы включите Precursor, не используя ранее JSD, вы можете увидеть больше трафика с показателем бота ниже 30.
Связь с Challenge Page
Precursor и Challenges выполняют разные роли:
- Проверки обеспечивают разовую верификацию в конкретный момент времени
- Precursor обеспечивает непрерывную проверку на уровне сессии
Precursor не заменяет Challenges. Вместо этого он усиливает их за счёт следующего:
- определение того, когда требуются дополнительные проверки
- повторная оценка посетителей, которые уже прошли Challenge
- выявление автоматизации, возникающей со временем
Связь с cf_clearance cookie
Precursor тесно интегрирован с cf_clearance. При работе Precursor:
- эффективный clearance может быть снижен или аннулирован
- могут запускаться дополнительные проверки
- посетитель может быть повторно проверен в течение той же сессии
Отображение в Security Analytics
После того как Precursor начинает работать в зоне, его обнаружения появляются в разделе Analytics этой зоны. Чтобы открыть его, выберите свою зону в панели управления Cloudflare и перейдите в Безопасность > Аналитика > Трафик > Анализ ботов. Распределение по показателю бота и количество срабатываний правил WAF теперь учитывают данные обнаружения Precursor.
Подробнее см. в Security Analytics.