← Challenges / cloudflare-challenges
Устранение неполадок
Частые проблемы
Проксированные хосты
Если ваш хост проксируется через Cloudflare, посетители могут сталкиваться с Challenge на страницах вашего сайта.
Cloudflare выдаёт проверки через Challenge Platform, это та же базовая технология, на которой работает Turnstile.
В отличие от наших решений на основе Challenge page, Turnstile позволяет запускать проверки в любой части сайта менее навязчиво и не требует использования CDN Cloudflare.
Поддержка устаревших браузеров
Microsoft Internet Explorer не поддерживает проверки. Если вы используете Internet Explorer, попробуйте другой современный браузер (Chrome, Safari, Firefox). Если вы уже используете современный браузер, убедитесь, что установлена его последняя версия.
Заголовок Referer
HTTP-запрос посетителя содержит заголовок referer, указывающий на сайт, с которого он пришёл. Когда посетитель сталкивается со страницей проверки и проходит её, запрос с этим referer отправляется на источник, а ответ на запрос передаётся пользователю. JavaScript на странице ответа может считать значение document.referer, но оно будет неточным.
Например, к посетителю, пришедшему с определённого сайта, применяется Правило WAF через промежуточную Challenge Page, которую показывает ваш домен. Как только посетитель загрузит главную страницу сайта, document.referer значение указывает на ваш домен, а не на исходный сайт.
Это влияет на такие инструменты, как Google Analytics, которые считывают referer из JavaScript, поскольку он заменяет исходный сайт, с которого пришёл посетитель.
Вы можете добавить скрипты отслеживания, например JavaScript Google Tag Manager, в существующий Challenge Page чтобы зафиксировать правильный заголовок referer в первом запросе.
<script>
(function () {
const gaIds = {
"<YOUR_DOMAIN>": "<GA_TRACKING_ID>",
};
const gaId = gaIds[window.location.hostname];
if (gaId) {
const src = "https://www.googletagmanager.com/gtag/js?id=";
const gaScript = document.createElement("script");
gaScript.src = src.concat(gaId);
document.body.appendChild(gaScript);
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", gaId);
} else {
console.warn(
"Google Analytics ID not found for host:",
window.location.hostname,
);
}
})();
</script>
</body>Предварительные запросы Cross-Origin Resource Sharing (CORS)
Предварительные запросы Cross-Origin Resource Sharing (CORS), или OPTIONS, исключите учётные данные пользователя, включающие cookie. В результате cf_clearance cookie не будет отправлен с запросом, из-за чего он не сможет обойти страницу Challenge Page (Non-interactive, Managed или Interactive Challenge).
Проверки на сайтах, защищённых Cloudflare
Cloudflare выдаёт проверки посетителям сайта для защиты от вредоносной активности, такой как атаки ботов и попытки DDoS. Если реальному человеку неожиданно показывается проверка, причина обычно в том, что его запрос был помечен одной из функций защиты.
| Источник | Описание |
|---|---|
| Высокий показатель угрозы | IP-адреса с высоким показателем риска запускают Challenges. |
| Репутация IP-адреса | Если ваш IP-адрес ранее проявлял подозрительную активность, он может быть помечен как небезопасный. |
| Обнаружение ботов | Автоматизированный трафик, похожий на ботов, отфильтровывается Cloudflare. |
| Пользовательские правила Web Application Firewall (WAF) | Владельцы сайтов могут настраивать правила для конкретных регионов или user agent. |
| Browser Integrity Check | Cloudflare проверяет, соответствует ли браузер определённым стандартам. |
| Challenge Passage | Такие технологии, как Privacy Pass, снижают частоту повторных Challenge. |
Чтобы избежать повторных Challenge, посетители могут предпринять следующие шаги, чтобы их окружение не вызывало срабатывание проверок безопасности:
- Убедитесь, что ваш браузер обновлён до последней стабильной версии: это обеспечит полную совместимость с современными технологиями Challenge.
- Временно отключить расширения браузера, например блокировщики рекламы или инструменты конфиденциальности, которые могут блокировать стандартные заголовки браузера или необходимые скрипты Challenge.
- Если у вашего IP-адреса плохая репутация (это часто встречается у общих VPN или корпоративных прокси), попробуйте переключиться на другое, доверенное сетевое подключение.
Добавлять в список разрешений трафик от действий по устранению угроз
Если вам нужно предотвратить Block или Challenge действие не применялось к определенным запросам, например к известным поисковым роботам, сервисам мониторинга или внутренним API, настройте исключение с помощью Пользовательские правила WAF.
Cloudflare поддерживает два основных способа создания таких исключений:
1. Используйте правило Skip (рекомендуется)
Самый надёжный способ создать исключение: настроить пользовательское правило с действием Пропустить действие. Это позволяет соответствующим запросам обходить некоторые функции безопасности, включая Bot Management и другие правила WAF.
Пример
Заблокируйте Amazon Web Services (AWS) и Google Cloud Platform (GCP) из-за большого объёма нежелательного трафика, но разрешите Googlebot и других известных ботов, которых проверяет Cloudflare.
-
Базовое правило, без исключений:
- Выражение:
(ip.src.asnum in {16509 15169} and not cf.client.bot) - Действие: Block (или действие Challenge)
- Выражение:
-
Правило, исключающее IP-адреса из блокировки или Challenge:
- Выражение:
(ip.src.asnum in {16509 15169} and not cf.client.bot) and not (ip.src in {192.0.2.1 198.51.100.42 203.0.113.0/24}) - Действие: Block (или действие Challenge)
- Выражение:
-
Два правила, которые пропускают остальные пользовательские правила для конкретных IP-адресов и блокируют все остальные.
-
Правило 1:
- Expression:
ip.src in {192.0.2.1 198.51.100.42 203.0.113.0/24} - Действие: Skip > All remaining custom rules
- Expression:
-
Правило 2:
- Expression:
(ip.src.asnum in {16509 15169} and not cf.client.bot) - Действие: Block (или действие Challenge)
- Expression:
-
2. Измените Rule Expression
Вы можете уточнить выражение Block или Challenge правило, чтобы напрямую исключить заведомо легитимный трафик с помощью логического оператора not и списка исключений, например списка IP-адресов, кода страны или ASN.
Такой подход удобен для простых исключений, но в случае сложных правил может усложнить их поддержку по сравнению с отдельными Пропустить правил.
Пример
Исключите несколько IP-адресов из Block или Challenge правило, которое оценивает показатель атаки.
-
Базовое правило, без исключений:
- Выражение:
(http.host eq "example.com" and cf.waf.score lt 20) - Действие: Block (или действие Challenge)
- Выражение:
-
Правило, исключающее IP-адреса из блокировки/Challenge:
- Выражение:
(http.host eq "example.com" and cf.waf.score lt 20) and not (ip.src in {192.0.2.1 198.51.100.42 203.0.113.0/24}) - Действие: Block (или действие Challenge)
- Выражение:
-
Два правила, которые пропускают остальные пользовательские правила для конкретных IP-адресов и блокируют все остальные.
-
Правило 1:
- Expression:
ip.src in {192.0.2.1 198.51.100.42 203.0.113.0/24} - Действие: Skip > All remaining custom rules
- Expression:
-
Правило 2:
- Expression:
(http.host eq "example.com" and cf.waf.score lt 20) - Действие: Block (или действие Challenge)
- Expression:
-