Comparisons

Solve CAPTCHA Berbasis Token vs Berbasis Cookie — Perbandingan

Solusi CAPTCHA hadir dalam dua bentuk: tokens yang Anda masukkan ke dalam submit formulir, dan cookie yang memberikan akses tingkat sesi. Memilih pendekatan yang tepat bergantung pada CAPTCHA yang Anda hadapi dan bagaimana situs target memvalidasinya.


Sekilas

Aspek Berbasis token Berbasis cookie
Keluaran Token string (500+ karakter) Cookie browser (qa_validation_cookie, dll.)
Digunakan untuk reCAPTCHA v2/v3, hCaptcha, Turnstile halaman Cloudflare Challenge
Bagaimana cara penggunaannya Dimasukkan ke dalam bidang formulir atau badan POST Dikirim dengan permintaan HTTP berikutnya
Seumur hidup 60-120 detik 30 menit hingga 24 jam
Dapat digunakan kembali Tidak (sekali pakai) Ya (untuk durasi sesi)
Diperlukan peramban Hanya untuk ekstraksi Untuk penyelesaiannya (diperlukan browser lengkap)

Pemecahan berbasis token

Bagaimana cara kerjanya

  1. Ekstrak sitekey dari halaman
  2. Kirimkan sitekey + URL halaman ke CaptchaAI
  3. Menerima string token
  4. Masukkan token ke dalam bidang formulir tersembunyi
  5. Kirimkan formulirnya

CAPTCHA mana yang menggunakan token

  • reCAPTCHA v2: Token masuk ke textarea g-recaptcha-response
  • reCAPTCHA v3: Bidang yang sama, tetapi juga memerlukan action (dan enterprise=1 untuk sitekey Enterprise)
  • hCaptcha: Token masuk ke h-captcha-response
  • Turnstile: Token masuk ke cf-turnstile-response

Implementasi

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,
})

Karakteristik utama

  • Tidak diperlukan browser untuk submit: Anda dapat memasukkan token langsung ke permintaan HTTP POST
  • Berumur pendek: Token akan expiry dalam 60-120 detik — selesaikan dan gunakan segera
  • Sekali pakai: Setiap token berfungsi satu kali; selesaikan lagi untuk setiap submit formulir
  • Validasi sisi server: Situs target mengirimkan token ke Google/Cloudflare/hCaptcha untuk verifikasi

Bagaimana cara kerjanya

  1. Halaman tantangan disajikan (Cloudflare Challenge, JS Challenge)
  2. Browser memecahkan tantangan ini (mungkin melibatkan Turnstile secara internal)
  3. Server menetapkan cookie sesi (qa_validation_cookie)
  4. Semua permintaan berikutnya dengan cookie tersebut melewati tantangan
  • Halaman Cloudflare Challenge: cookie qa_validation_cookie
  • Tantangan JS: Tantangan khusus Cloudflare JavaScript
  • Beberapa tantangan WAF: Berbagai Firewall Aplikasi Web

Implementasi

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 pengaturan token

# 2. Extract cookies from browser
cookies = driver.get_cookies()
qa_validation_cookie = next(
    (c for c in cookies if c["name"] == "qa_validation_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}")

Karakteristik utama

  • Perlu browser untuk menyelesaikannya: Tantangan ini memerlukan lingkungan browser lengkap
  • Umur panjang: Cookies bertahan 30 menit hingga 24 jam
  • Dapat digunakan kembali: Satu penyelesaian memberikan akses ke banyak permintaan
  • Terikat IP: Cookie dikaitkan dengan IP yang menyelesaikan tantangan
  • Terikat UA: User-Agent harus cocok dengan yang digunakan selama penyelesaian

Kapan menggunakan yang mana

Skenario Pendekatan Mengapa
Formulir masuk dengan reCAPTCHA Tanda Kirim token dengan data formulir
Scraping situs yang dilindungi Cloudflare cookie Satu penyelesaian, banyak permintaan halaman
submit formulir dengan Turnstile Tanda Suntikkan ke cf-turnstile-response
Mengakses API di belakang Cloudflare cookie Gunakan kembali cookie untuk semua panggilan API
Mengirimkan berbagai formulir Token (setiap kali) Setiap formulir membutuhkan token baru
Scraping massal domain yang sama cookie Selesaikan sekali, kikis hingga cookie habis masa berlakunya

Pendekatan hibrida

Beberapa situs menggunakan keduanya: halaman Cloudflare Challenge (cookie) yang melindungi formulir yang memiliki reCAPTCHA (token).

# Step 1: Get past Cloudflare (cookie)
session = get_cf_clearance_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,
})

Ringkasan perbandingan

Fitur Tanda cookie
Selesaikan biaya Per submit formulir Per sesi (diamortisasi)
Selesaikan waktu 10-30 detik per token 10-30 detik sekali
Permintaan per penyelesaian 1 Banyak (sampai habis masa berlakunya)
Fleksibilitas IP Token berfungsi dari IP apa pun Cookie terkait dengan penyelesaian IP
Peramban untuk digunakan Tidak diperlukan Tidak diperlukan (hanya cookie)
Risiko kadaluarsa 60-120an 30 menit - 24 jam

Pertanyaan Umum

Tidak. Pendekatannya bergantung pada cara situs memvalidasi. reCAPTCHA selalu menggunakan token; Cloudflare Challenge selalu menggunakan cookie.

Mana yang lebih murah untuk Scraping volume tinggi?

Berbahan dasar cookie jauh lebih murah bila tersedia. Satu penyelesaian mencakup ribuan permintaan. Berbasis token memerlukan penyelesaian per submit formulir.

Apakah CaptchaAI menangani keduanya?

Ya. CAPTCHA berbasis token mengembalikan string token. Untuk halaman Cloudflare Challenge, Anda dapat menggunakan pemecah Turnstile untuk mendapatkan token yang diperlukan untuk menyelesaikan tantangan, lalu mengekstrak cookie yang dihasilkan.


Selesaikan CAPTCHA dengan CaptchaAI

Dapatkan kunci API Anda dicaptchaai.com.


Panduan terkait

Komentar dinonaktifkan untuk artikel ini.