Comparisons

Token Tabanlı ve Çerez Tabanlı CAPTCHA Çözme Karşılaştırması

Kısa yanıt: tek bir formu gönderecekseniz token, aynı alan adına art arda yüzlerce istek atacaksanız çerez kullanırsınız. Bu bir tercih değil; hedef sitenin doğrulamayı nerede yaptığına bağlı.

Farkı tek cümleye indirgeyelim: token, tek bir isteğe iliştirilen kısa ömürlü bir dizedir; çerez ise bir oturum boyunca geçerli kalan uzun ömürlü bir erişim kaydıdır. Yanlış tarafı seçen ekipler her istekte gereksiz çözüm harcar.


Karar üç soruda biter

  • Sayfa kaynağında sitekey ve doldurulacak gizli bir form alanı varsa → token.
  • İçeriğin yerine önce bir Cloudflare doğrulama akışı ekranı geliyorsa → çerez.
  • İkisi arka arkaya geliyorsa → önce çerez oturumunu kurun, formu sonra token ile gönderin.

Token ve çerez teknik olarak nerede ayrışıyor

Kriter Token tabanlı Çerez tabanlı
Çıktı 500+ karakterlik dize Tarayıcı çerezi (qa_session_cookie)
Ömür 60–120 saniye 30 dakika – 24 saat
Yeniden kullanım Yok, tek kullanımlık Var, oturum boyunca
Tarayıcı Sadece parametre çıkarımında Çözüm anında zorunlu
Bağımlılık sitekey + pageurl Çözen IP ve User-Agent

Token tabanlı çözüm nasıl işliyor

Token akışı tarayıcısızdır: sayfadan iki parametreyi çıkarıp çözümü API'ye bırakırsınız, dönen dizeyi de form gövdesine yazarsınız.

  1. Sayfa kaynağından sitekey değerini çıkarın.
  2. sitekey ve pageurl bilgisini CaptchaAI'ye gönderin.
  3. res.php uç noktasını beş saniyede bir sorgulayıp token'ı alın.
  4. Token'ı gizli form alanına yazın.
  5. Formu, token'ın süresi dolmadan gönderin.

Hangi CAPTCHA ailesi hangi token alanını kullanır

CAPTCHA ailesi CaptchaAI Token alanı
reCAPTCHA v2 / Invisible g-recaptcha-response
reCAPTCHA v3 / Enterprise g-recaptcha-response + action
Cloudflare Turnstile cf-turnstile-response
GeeTest v3 challenge + validate değerleri
CaptchaFox / Friendly Captcha / Lemin ✅ Beta sağlayıcının kendi alanı
hCaptcha ❌ henüz desteklenmiyor h-captcha-response
GeeTest v4 ⏳ çok yakında

Token mantığı her ailede aynı çalışsa da çözüm tarafındaki kapsam farklıdır; beta türler için yayımlanmış ölçüm henüz yok.

Python ile tam döngü

import requests
import time

API_KEY = "YOUR_API_KEY"

# 1. Solve
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": "6Le-wvkSAAAAAPBMR...",
    "pageurl": "https://staging.example.com/qa-login",
    "json": "1",
}).json()
task_id = resp["request"]

# 2. Poll
token = None
for _ in range(24):
    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"]
        break

# 3. Submit form with token (no browser needed)
form_response = requests.post("https://staging.example.com/qa-login", data={
    "email": "user@example.com",
    "password": "password",
    "g-recaptcha-response": token,
})

Üretimde takıldığınız noktalar

  • Süre: token 60–120 saniyede geçersizleşir; çözümü gönderimden hemen önce başlatın.
  • Adres eşleşmesi: hedef site token'ı Google ya da Cloudflare'e sorar; pageurl gerçek sayfa adresiyle birebir aynı olmalıdır.

Çerez tabanlı çözüm nasıl işliyor

Burada akış terstir: doğrulamayı bir kez tam tarayıcıda tamamlayıp karşılığında bir oturum çerezi alırsınız; geri kalan trafiği tarayıcısız sürdürürsünüz. Cloudflare doğrulama akışı sayfaları ve çeşitli WAF katmanları bu modelle çalışır.

  1. İstek, içerik yerine bir Cloudflare doğrulama akışı ekranıyla yanıtlanır.
  2. Tam bir tarayıcı bu akışı tamamlar; arka planda Turnstile çalışıyor olabilir.
  3. Sunucu bir oturum çerezi yazar (qa_session_cookie).
  4. Aynı çerezi taşıyan sonraki istekler doğrudan içeriğe ulaşır.

Çerezin bağlı olduğu koşullar

  • IP: çerez, doğrulamayı tamamlayan IP adresine bağlıdır.
  • User-Agent: tarayıcıdaki değer ile requests oturumundaki değer birebir aynı olmalıdır.
  • Ömür: 30 dakika ile 24 saat arası; süre dolduğunda tarayıcı adımını tekrarlarsınız.

Selenium ile çerezi çıkarmak

from selenium import webdriver
import requests
import time

# 1. Solve the challenge in a browser
driver = webdriver.Chrome()
driver.get("https://example.com/protected")

# Wait for challenge to complete (manually or with CaptchaAI)
time.sleep(10)  # Or use CaptchaAI token injection

# 2. Extract cookies from browser
cookies = driver.get_cookies()
qa_session_cookie = next(
    (c for c in cookies if c["name"] == "qa_session_cookie"), None
)
user_agent = driver.execute_script("return navigator.userAgent")
driver.quit()

# 3. Use cookies for subsequent requests (no browser needed)
session = requests.Session()
session.headers.update({"User-Agent": user_agent})

for cookie in cookies:
    session.cookies.set(cookie["name"], cookie["value"])

# All requests now pass the challenge
for page in range(1, 50):
    resp = session.get(f"https://example.com/api/data?page={page}")
    print(f"Page {page}: {resp.status_code}")

İkisinin aynı akışta buluştuğu durum

Sahada en sık görülen kurulum karmadır: alan adının önünde Cloudflare doğrulama akışı, arkasında reCAPTCHA'lı bir form. Çerez oturumu kapıyı açar, token formu.

# Step 1: Get past Cloudflare (cookie)
session = get_qa_session_cookie_session("https://example.com")

# Step 2: Load the form (using the cookie session)
html = session.get("https://example.com/submit").text
sitekey = extract_sitekey(html)

# Step 3: Solve reCAPTCHA (token)
token = solve_recaptcha(sitekey, "https://example.com/submit")

# Step 4: Submit form (cookie + token)
resp = session.post("https://example.com/submit", data={
    "data": "value",
    "g-recaptcha-response": token,
})

Sıra önemlidir: çerez oturumu kurulmadan form HTML'ini alamazsınız, dolayısıyla sitekey de çıkarılamaz. Token en son adımda çözülür.


Türkiye'den bir senaryo: gece koşan ödeme akışı testleri

Bir e-ticaret ekibinin her gece 03.00'te (Europe/Istanbul) koşan regresyon paketini düşünün: staging kataloğundan 400 sayfa geziliyor, ardından test hesabıyla ödeme adımı tamamlanıyor. Katalog Cloudflare doğrulama akışının arkasında, ödeme formunda reCAPTCHA v2 var.

Doğru dağılım şudur: katalog için tek bir çerez oturumu kurulur ve 400 istek boyunca yeniden kullanılır; ödeme formu için her koşuda tek bir token çözülür. Aynı işi baştan sona token ile yapan ekip 400 ayrı çözüm harcar. Faturalandırma thread başına olduğu için asıl kısıt eşzamanlılıktır: bu paket BASIC ($15/ay, 5 thread) ile rahat koşar, aynı paketi 20 mağaza için paralel yürüten bir ajans ADVANCE ($90/ay, 50 thread) seviyesine çıkar. Fiyatlar USD cinsinden sabit olduğundan aylık tutar baştan bellidir.

Bir hatırlatma: topladığınız veri kişisel veri içeriyorsa KVKK kapsamındadır; yetkili olduğunuz ortamlarda kalın.


Hangi senaryoda hangisi

Senaryo Yaklaşım Gerekçe
reCAPTCHA'lı giriş formu Token Form verisiyle birlikte gider
Cloudflare arkasındaki kataloğu gezmek Çerez Tek çözüm, yüzlerce sayfa isteği
Turnstile'lı form gönderimi Token cf-turnstile-response alanına yazılır
Aynı alan adında toplu veri toplama Çerez Süre dolana kadar tek oturum yeter

Sık sorulan sorular

Süresi dolan bir token'ı yeniden gönderebilir miyim?

Hayır. Token tek kullanımlıktır ve 60–120 saniyede geçersizleşir. Çözümü form gönderiminden hemen önce tetikleyin.

Aldığım çerezi başka bir sunucuda kullanabilir miyim?

Pratikte hayır. Oturum çerezi, doğrulamayı tamamlayan IP adresine ve User-Agent değerine bağlıdır; başka bir çıkıştan doğrulama ekranı yeniden gelir.

CaptchaAI hCaptcha veya FunCaptcha çözüyor mu?

Hayır, bu iki tür şu an desteklenmiyor. Desteklenen tarafta reCAPTCHA ailesi, Turnstile, Cloudflare doğrulama akışı, GeeTest v3, görsel/OCR, grid ve BLS bulunur.

Yüksek hacimde hangisi daha az kaynak harcar?

Çerez tabanlı akış daha ekonomiktir: tek çözüm binlerce isteği taşır. Token tarafında 1.000 form gönderimi, 1.000 ayrı çözüm demektir.


CaptchaAI ile ilk çözümünüzü yapın

API anahtarınızı captchaai.com üzerinden alın ve token akışını yukarıdaki örnekle deneyin.


İlgili rehberler

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