Teknik Açıklamalar

Cloudflare Mücadelesi qa_session_cookie Çerez Kılavuzu

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?

  1. Kullanıcı Cloudflare korumalı bir sayfa ister
  2. Cloudflare risk sinyallerini değerlendirir (IP itibarı, başlıklar, TLS test profil yapılandırması)
  3. İşaretlenirse Cloudflare, JavaScript sorgulama sayfasıyla birlikte 403 veya 503 döndürür
  4. Yarışma sayfası tarayıcı kontrollerini çalıştırır ve bir Turnstile widget'ı sunabilir
  5. Başarı durumunda Cloudflare qa_session_cookie'yi ayarlar ve orijinal URL'ye yönlendirir
  6. Çerezle yapılan sonraki istekler sorgulanmadan yerine getirilir

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.

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.


İlgili kılavuzlar

Bu makale için yorumlar devre dışı bırakılmıştır.