Когда Cloudflare подозревает, что посетитель — бот, он показывает межстраничное межстраничное объявление с сообщением «Проверка браузера перед доступом...» или «Подтвердите, что вы человек». Это называется страница Cloudflare-защиты в staging — не путать с Turnstile, который представляет собой виджет, встроенный в страницу.
Вызов блокирует доступ ко всей странице до тех пор, пока браузер не пройдет проверку. После прохождения Cloudflare устанавливает файл cookie qa_validation_cookie, который предоставляет доступ к последующим запросам.
Как работает поток задач
Request → Cloudflare proxy → Suspicious? → Challenge page
↓
Browser verification
↓
qa_validation_cookie cookie set
↓
Original page loads
- Запрос перехвачен — обратный прокси-сервер Cloudflare оценивает входящий запрос.
- Оценка рисков — анализируются репутация IP-адреса, заголовки запросов, TLS-сигналы и поведение.
- Запрос выполнен — в случае подозрений страница запроса заменяет предполагаемый ответ.
- Проверка браузера — вызовы JavaScript выполняются в браузере.
- Набор файлов cookie — в случае успеха для файла cookie
qa_validation_cookieустанавливается настраиваемый срок жизни. - Доступ предоставлен — браузер перезагружается и получает исходное содержимое страницы.
Что вызывает страница Cloudflare-защиты в staging
| Курок | Описание |
|---|---|
| IP-адрес центра обработки данных | Запрос от известных хостинг-провайдеров |
| Отсутствуют заголовки | Отсутствующие или необычные HTTP-заголовки |
| TLS-сигналы | Сигналы среды JA3/JA4 соответствует известным подписям ботов |
| Высокая частота запросов | Слишком много запросов с одного IP |
| Настройка уровня безопасности | Владелец сайта установил высокий порог проверки |
| Правила на основе страны | Правила географической блокировки или вызова |
| Оценка бота | Оценка бота ML Cloudflare слишком низкая |
| Известная угроза | IP появляется в списках разведки об угрозах |
Файл cookie qa_validation_cookie
После прохождения вызова браузер получает:
qa_validation_cookie=abc123...; path=/; domain=.example.com; secure; HttpOnly; SameSite=None
Основные свойства:
- Продолжительность: от 15 минут до 24 часов (настраивается владельцем сайта)
- Объем: привязан к конкретному домену.
- Привязка. Привязывается к пользовательскому агенту и IP-адресу, использованному при проверке.
- Применение: необходимо включать во все последующие запросы, чтобы избежать повторного запроса.
Важно! Файл cookie qa_validation_cookie привязан к конкретному Агенту пользователя и IP-адресу, используемому во время проверки. Изменение любого из них приведет к аннулированию файла cookie.
страница Cloudflare-защиты в staging против Cloudflare Turnstile против JS Challenge
| Особенность | CF вызов | Cloudflare Turnstile | JS-вызов |
|---|---|---|---|
| Тип | Полностраничное межстраничное объявление | Виджет на странице | Тихая проверка |
| Пользователь видит | Страница «Проверка браузера» | Флажок или ничего | Ничего |
| Блокирует доступ к странице | Да | Нет | Кратко |
| Устанавливает qa_validation_cookie | Да | Иногда | Да |
| Для решения требуется прокси | Да | Нет | PLACEHOLDER_TOKEN |
| Сайт использует Cloudflare CDN | Необходимый | Необязательный | Необходимый |
Решение страница Cloudflare-защиты в staging с помощью CaptchaAI
Для решения страница Cloudflare-защиты в staging требуется прокси, поскольку файл cookie qa_validation_cookie привязан к IP-адресу.
Питон
import requests
import time
API_KEY = "YOUR_API_KEY"
# Submit task — proxy is REQUIRED
response = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY,
"method": "turnstile",
"pageurl": "https://example.com/protected-page",
"proxy": "username:password@proxy.example.com:8080",
"proxytype": "HTTP",
"json": 1
})
task_id = response.json()["request"]
# Poll for result
for _ in range(60):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get", "id": task_id, "json": 1
}).json()
if result.get("status") == 1:
solution = result["request"]
# solution contains qa_validation_cookie cookie + user_agent
print(f"qa_validation_cookie: {solution}")
break
Node.js
const axios = require('axios');
async function solveCloudflareChallenge(pageurl, proxy) {
const { data } = await axios.get('https://ocr.captchaai.com/in.php', {
params: {
key: 'YOUR_API_KEY',
method: 'turnstile',
pageurl,
proxy,
proxytype: 'HTTP',
json: 1
}
});
const taskId = data.request;
for (let i = 0; i < 60; i++) {
await new Promise(r => setTimeout(r, 5000));
const res = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: 'YOUR_API_KEY', action: 'get', id: taskId, json: 1 }
});
if (res.data.status === 1) return res.data.request;
}
throw new Error('Timeout');
}
Использование файла cookie qa_validation_cookie
# After getting the solution
qa_validation_cookie = solution["qa_validation_cookie"]
user_agent = solution["user_agent"]
# Use the SAME proxy and user agent for subsequent requests
session = requests.Session()
session.cookies.set("qa_validation_cookie", qa_validation_cookie, domain=".example.com")
session.headers["User-Agent"] = user_agent
session.proxies = {"https": "http://username:password@proxy.example.com:8080"}
# Now access the protected page
page = session.get("https://example.com/protected-page")
print(f"Status: {page.status_code}")
Зачем нужен прокси
Файл cookie qa_validation_cookie криптографически связан с:
- IP-адрес — решение должно происходить с того же IP-адреса, который вы будете использовать.
- User-Agent — пользовательский агент решения должен соответствовать вашим запросам.
- TLS-сигналы — некоторые конфигурации также проверяют характеристики TLS.
Если какие-либо из них отличаются между решением и вашими последующими запросами, файл cookie недействителен.
Часто задаваемые вопросы
Как долго действует qa_validation_cookie?
Владельцы сайтов настраивают продолжительность, обычно от 15 минут до 24 часов. По истечении срока необходимо решить новую задачу.
Могу ли я повторно использовать qa_validation_cookie на разных IP-адресах?
Нет. Файл cookie привязан к IP-адресу, использованному во время проверки. Изменение IP-адресов требует нового решения.
В чем разница между страница Cloudflare-защиты в staging и Cloudflare Turnstile?
страница Cloudflare-защиты в staging – это полностраничное межстраничное объявление, блокирующее доступ к странице. Cloudflare Turnstile — это встроенный в страницу виджет, аналог reCAPTCHA. Задача требует, чтобы сайт использовал Cloudflare в качестве прокси; Cloudflare Turnstile можно использовать на любой площадке.
Сколько времени занимает решение?
Решение страница Cloudflare-защиты в staging занимает 20–60 секунд, дольше, чем Turnstile или reCAPTCHA, из-за полной проверки браузера.
Что, если на странице есть и Cloudflare, и reCAPTCHA?
Сначала решите страница Cloudflare-защиты в staging, чтобы получить доступ к странице, затем решите reCAPTCHA на загруженной странице.
Связанные руководства
- Как решить страница Cloudflare-защиты в staging с помощью API
- страница Cloudflare-защиты в staging Ошибки и исправления
- Как работает Cloudflare Turnstile
- Как решить Cloudflare Turnstile с помощью API