Cloudflare bir ziyaretçiyi şüpheli olarak işaretlediğinde, bir geçiş reklamı sorgulama sayfası sunar. Çözüldükten sonra tarayıcı, oturuma erişim sağlayan bir qa_session_cookie çerezi alır. Bu kılavuz, sorgulama akışının nasıl çalıştığını ve CaptchaAI'nin bunu nasıl ele aldığını açıklamaktadır.
Cloudflare doğrulama akışı sayfaları nasıl çalışır?
- Kullanıcı Cloudflare korumalı bir sayfa ister
- Cloudflare risk sinyallerini değerlendirir (IP itibarı, başlıklar, TLS test profil yapılandırması)
- İşaretlenirse Cloudflare, JavaScript sorgulama sayfasıyla birlikte 403 veya 503 döndürür
- Yarışma sayfası tarayıcı kontrollerini çalıştırır ve bir Turnstile widget'ı sunabilir
- Başarı durumunda Cloudflare
qa_session_cookie'yi ayarlar ve orijinal URL'ye yönlendirir - Çerezle yapılan sonraki istekler sorgulanmadan yerine getirilir
qa_session_cookie çerezi
| Mülkiyet | Ayrıntılar |
|---|---|
| İsim | qa_session_cookie |
| Etki alanı | Hedef site alanı (ör. .example.com) |
| Yol | / |
| Ömür boyu | Tipik olarak 30 dakika ila 24 saat |
| Yalnızca Http | Evet |
| Güvenli | Evet (yalnızca HTTPS) |
| AynıSite | Yok |
Çerez çeşitli faktörlere bağlıdır:
- IP adresi — Farklı bir IP'den gelen çerezin kullanılması genellikle başarısız olur
- Kullanıcı Aracısı — Sorun çözme sırasında kullanılan UA ile eşleşmelidir
- TLS test profil yapılandırması — Bazı yapılandırmalar TLS ClientHello'ya bağlanır
Mücadele türleri
Cloudflare farklı zorluk seviyelerine hizmet eder:
| Mücadele | Yanıt kodu | Kullanıcı etkileşimi | Açıklama |
|---|---|---|---|
| JS Mücadelesi | 503 | Yok | Yalnızca JavaScript yürütme |
| Yönetilen Mücadele | 403 | belki | Cloudflare karar verir - Turnstileyi gösterebilir veya sessizce geçebilir |
| İnteraktif Mücadele | 403 | Evet | Her zaman bir Turnstile widget'ı gösterir |
CaptchaAI, her üç türü de Cloudflare doğrulama akışı çözücü aracılığıyla çözer.
CaptchaAI ile çözme
Python
import requests
import time
API_KEY = "YOUR_API_KEY"
TARGET_URL = "https://example.com/protected-page"
# Submit Cloudflare doğrulama akışı task
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "turnstile",
"sitekey": "0x0000000000000000000000", # may be generic for CF challenge
"pageurl": TARGET_URL,
"json": "1",
}).json()
if resp["status"] != 1:
raise Exception(f"Submit error: {resp['request']}")
task_id = resp["request"]
print(f"Task ID: {task_id}")
# Poll for result
for _ in range(30):
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["status"] == 1:
token = result["request"]
print(f"Token received: {token[:50]}...")
break
if result["request"] != "CAPCHA_NOT_READY":
raise Exception(f"Error: {result['request']}")
JavaScript
const axios = require('axios');
const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://example.com/protected-page';
const submit = await axios.post('https://ocr.captchaai.com/in.php', null, {
params: {
key: API_KEY,
method: 'turnstile',
sitekey: '0x0000000000000000000000',
pageurl: TARGET_URL,
json: 1,
}
});
const taskId = submit.data.request;
// Poll
let token = null;
for (let i = 0; i < 30; i++) {
await new Promise(r => setTimeout(r, 5000));
const poll = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: API_KEY, action: 'get', id: taskId, json: 1 }
});
if (poll.data.status === 1) {
token = poll.data.request;
break;
}
}
console.log(`Token: ${token.substring(0, 50)}...`);
Çözülmüş jetonu kullanma
Çözdükten sonra, qa_session_cookie'yi elde etmek için jetonu meydan okuma sayfasına enjekte edin:
# With Selenium
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(TARGET_URL) # Load the challenge page
# Inject token into Turnstile response field
driver.execute_script("""
const input = document.querySelector('input[name="cf-turnstile-response"]');
if (input) input.value = arguments[0];
// Trigger form submit or callback
const form = document.querySelector('form');
if (form) form.submit();
""", token)
# Wait for redirect and extract cookies
import time
time.sleep(3)
cookies = driver.get_cookies()
qa_session_cookie = next(
(c for c in cookies if c['name'] == 'qa_session_cookie'), None
)
if qa_session_cookie:
print(f"qa_session_cookie: {qa_session_cookie['value'][:30]}...")
Çerezin yeniden kullanılması
session = requests.Session()
session.cookies.set("qa_session_cookie", qa_session_cookie["value"], domain=".example.com")
session.headers.update({
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
})
# Now access protected pages
resp = session.get("https://example.com/api/data")
print(resp.status_code) # 200
Çerez ömrü ve yenileme
qa_session_cookie çerezinin süresi dolar. Yeniden çözümlemeyi planlayın:
import datetime
def is_cookie_valid(cookie):
if not cookie:
return False
expiry = cookie.get("expiry", 0)
return datetime.datetime.now().timestamp() < expiry - 60 # 60s buffer
def get_or_refresh_clearance(driver, target_url, solve_func):
cookies = driver.get_cookies()
cf = next((c for c in cookies if c["name"] == "qa_session_cookie"), None)
if is_cookie_valid(cf):
return cf["value"]
# Re-solve
token = solve_func(target_url)
# ... inject and extract new cookie
Sorun giderme
| Sorun | Sebep | Düzeltme |
|---|---|---|
| Çerez çözüldükten sonra reddedildi | IP uyuşmazlığı | Çözüm ve istekler için aynı proxy'yi kullanın |
| Çerezin süresi hızlı bir şekilde doluyor | Siteye göre belirlenen kısa TTL | Süre dolmadan yeniden çözün; expiry alanını kontrol edin |
| Geçerli çereze rağmen 403 | Kullanıcı-Aracı uyumsuzluğu | Çözüm ve istek oturumları arasında UA'yı eşleştirin |
| Yarışma sayfası yüklenmiyor | JavaScript devre dışı bırakıldı | Tam işlevli bir tarayıcı kullanın (Selenium, Puppeteer) |
SSS
CF_clearance'ı farklı makineler arasında paylaşabilir miyim?
Yalnızca aynı IP'yi paylaşıyorlarsa ve Kullanıcı Aracısı dizesiyle eşleşirseniz. Cloudflare genellikle çerezi kaynak IP'ye bağlar.
qa_session_cookie ne kadar sürer?
Site sahibinin Cloudflare yapılandırmasına bağlı olarak genellikle 30 dakika ile 24 saat arasında sürer.
Cloudflare doğrulama akışı sayfalarını CaptchaAI ile çözme
API anahtarınızı şu adresten alın:captchaai.com.