Pertanyaan yang paling sering muncul dari tim otomatisasi yang baru pindah ke solve berbasis API: apakah cookie browser tetap harus dikelola? Untuk sebagian besar implementasi reCAPTCHA, jawabannya tidak — CaptchaAI menghasilkan token di lingkungannya sendiri, lepas dari cookie apa pun di browser Anda. Namun pada situs dengan validasi ketat, salah satu dari lebih selusin cookie reCAPTCHA bisa menentukan token Anda diterima atau ditolak. Panduan ini memetakan cookie tersebut, efeknya ke skor risiko, dan kapan Anda perlu menanganinya.
Ringkasan cepat sebelum masuk ke detail:
- Solve API CaptchaAI tidak butuh cookie — cukup
sitekeydanpageurl. - reCAPTCHA sendiri memasang lebih dari selusin cookie untuk menilai risiko dan skor v3.
- Cookie baru wajib dikelola kalau situs target memvalidasi kecocokan sesi browser.
Cara mengatasi masalah cookie reCAPTCHA yang umum
| Masalah | Penyebab | Solusi |
|---|---|---|
| reCAPTCHA v2 selalu menampilkan tantangan gambar | Tidak ada cookie sesi, kepercayaan rendah | Pertahankan cookie di seluruh permintaan |
| Skor reCAPTCHA v3 selalu di bawah 0,3 | Sesi selalu baru | Pertahankan cookie jar |
| Token berhasil sekali lalu gagal saat di-retry | Cookie sesi tidak cocok | Pakai sesi yang sama untuk memuat halaman dan submit |
| Muncul "Cookie/session validation failed" | Situs memeriksa rantai cookie | Pakai penyuntikan token berbasis browser |
| Widget reCAPTCHA tidak mau muncul | Cookie pihak ketiga diblokir | Izinkan cookie dari google.com |
Dampak penghapusan cookie pihak ketiga di Chrome
Chrome menghapus cookie pihak ketiga secara bertahap — ini berdampak pada reCAPTCHA karena _GRECAPTCHA ditetapkan di .google.com dan dibaca dari konteks pihak ketiga.
Respons Google:
- reCAPTCHA v3 dan Enterprise memakai eksekusi JavaScript pihak pertama
- Cookie bertransisi ke penyimpanan
Partitioned(CHIPS) - Cookie
rc::sudah pihak pertama (ditetapkan di domain situs target)
Dampak ke otomatisasi:
- Minimal — solve API tidak terpengaruh karena token dihasilkan di sisi server.
- Otomatisasi browser mungkin mengalami sedikit pergeseran skor seiring Google menyesuaikan strategi cookie.
Efek cookie terhadap skor risiko reCAPTCHA
Sesi baru (tanpa cookie)
New browser session, all cookies cleared
↓
reCAPTCHA JavaScript loads
↓
No _GRECAPTCHA → First-time visitor signal
No SID/HSID → No Google account trust
No rc:: cookies → No behavioral history
↓
Starting risk score: lower baseline (0.3-0.5 for v3)
↓
Behavioral analysis must compensate for lack of history
↓
Result: More likely to receive visible challenge (v2)
Lower score (v3)
Praktiknya: tanpa jejak cookie, reCAPTCHA v2 lebih sering menampilkan tantangan gambar dan skor v3 mulai rendah.
Sesi kembali (dengan cookie)
Existing browser session with cookies
↓
reCAPTCHA JavaScript loads
↓
_GRECAPTCHA found → Returning visitor
SID/HSID found → Google account trust
rc:: cookies found → Previous behavioral data
↓
Starting risk score: higher baseline (0.5-0.7 for v3)
↓
Behavioral analysis reinforces cookie-based trust
↓
Result: More likely to auto-pass (v2)
Higher score (v3)
Kebalikannya, sesi dengan riwayat cookie valid memulai dari baseline lebih tinggi — cookie jar persisten jadi pengungkit termudah untuk menaikkan skor v3.
Langkah cepat kalau skor mentok rendah:
- Cek apakah setiap run memulai sesi baru — aktifkan cookie jar persisten kalau ya.
- Bandingkan skor sebelum/sesudah beberapa run dengan cookie yang sama.
Strategi mengelola cookie dalam otomatisasi
Strategi 1: cookie jar persisten di seluruh request
Pertahankan cookie di seluruh permintaan untuk membangun kepercayaan sesi:
import requests
import pickle
import os
class CookieManager:
"""Manage cookies for reCAPTCHA sessions."""
def __init__(self, cookie_file="cookies.pkl"):
self.cookie_file = cookie_file
self.session = requests.Session()
self.load_cookies()
def load_cookies(self):
"""Load cookies from disk if they exist."""
if os.path.exists(self.cookie_file):
with open(self.cookie_file, "rb") as f:
self.session.cookies = pickle.load(f)
def save_cookies(self):
"""Save cookies to disk for next session."""
with open(self.cookie_file, "wb") as f:
pickle.dump(self.session.cookies, f)
def visit_page(self, url):
"""Visit a page to collect cookies."""
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/120.0.0.0 Safari/537.36",
}
response = self.session.get(url, headers=headers, timeout=15)
self.save_cookies()
return response
def get_recaptcha_cookies(self):
"""Get cookies relevant to reCAPTCHA."""
relevant = {}
for cookie in self.session.cookies:
if cookie.name in ["_GRECAPTCHA", "SID", "HSID", "SSID", "NID"]:
relevant[cookie.name] = {
"value": cookie.value[:20] + "...",
"domain": cookie.domain,
"expires": cookie.expires,
}
if cookie.name.startswith("rc::"):
relevant[cookie.name] = {
"value": cookie.value[:20] + "...",
"domain": cookie.domain,
}
return relevant
# Usage
cm = CookieManager("recaptcha_session.pkl")
cm.visit_page("https://staging.example.com/qa-login") # Build cookies
print(cm.get_recaptcha_cookies())
Strategi 2: teruskan cookie tersimpan ke Selenium
from selenium import webdriver
import json
def setup_cookies(driver, cookie_file="selenium_cookies.json"):
"""Load and apply saved cookies to a Selenium session."""
if not os.path.exists(cookie_file):
return
with open(cookie_file, "r") as f:
cookies = json.load(f)
for cookie in cookies:
# Selenium requires the domain to match current page
try:
driver.add_cookie(cookie)
except Exception:
pass # Skip cookies for different domains
def save_cookies(driver, cookie_file="selenium_cookies.json"):
"""Save current cookies for future sessions."""
cookies = driver.get_cookies()
with open(cookie_file, "w") as f:
json.dump(cookies, f)
# Usage
driver = webdriver.Chrome()
driver.get("https://example.com")
setup_cookies(driver) # Apply saved cookies
driver.refresh() # Reload with cookies
# After CAPTCHA solving...
save_cookies(driver) # Save for next run
Strategi 3: teruskan cookie tersimpan ke Puppeteer
const puppeteer = require("puppeteer");
const fs = require("fs");
async function manageCookies(page, cookieFile = "cookies.json") {
// Load cookies if file exists
if (fs.existsSync(cookieFile)) {
const cookies = JSON.parse(fs.readFileSync(cookieFile));
await page.setCookie(...cookies);
}
// Save cookies after page interaction
const saveCookies = async () => {
const cookies = await page.cookies();
fs.writeFileSync(cookieFile, JSON.stringify(cookies, null, 2));
};
return { saveCookies };
}
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
const { saveCookies } = await manageCookies(page);
await page.goto("https://staging.example.com/qa-login");
// ... solve CAPTCHA ...
await saveCookies();
await browser.close();
})();
Untuk tim otomatisasi Indonesia yang jalankan job dari VPS di ap-southeast-1 (Singapura) atau asia-southeast2 (Jakarta), cookie jar persisten meredam efek reconnect saat jaringan mobile-first putus. Kontraktor lepas dan agensi price-monitoring dengan batch besar paling merasakan manfaatnya.
Apakah solve API CaptchaAI butuh cookie reCAPTCHA?
Solver CaptchaAI menghasilkan token di lingkungannya sendiri — situs target memvalidasinya tanpa memeriksa cookie browser Anda. Namun sebagian implementasi menambahkan lapisan validasi ekstra.
Kasus umum: sitekey dan pageurl saja sudah cukup
Tidak ada penerusan cookie. CaptchaAI menghasilkan token valid hanya dengan sitekey dan pageurl:
import requests
import time
API_KEY = "YOUR_API_KEY"
# Standard solve — no cookies needed
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://staging.example.com/qa-login",
"json": 1,
})
Kasus situs dengan validasi sesi ketat
Sebagian situs dengan keamanan tinggi memvalidasi bahwa sesi pengirim token cocok dengan sesi yang memuat widget reCAPTCHA. Urutan kerjanya:
- Muat halaman di browser sungguhan untuk membangun cookie
- Ekstrak sitekey dari halaman yang sudah dimuat
- Kirim sitekey dan pageurl itu ke CaptchaAI
- Suntikkan token hasil solve ke sesi browser yang sama
- Submit form dari browser itu juga (rantai cookie tetap utuh)
from selenium import webdriver
from selenium.webdriver.common.by import By
import requests
import time
API_KEY = "YOUR_API_KEY"
# Step 1: Load page in real browser (establishes cookies)
driver = webdriver.Chrome()
driver.get("https://secure-site.com/login")
# Step 2: Extract sitekey
widget = driver.find_element(By.CSS_SELECTOR, "[data-sitekey]")
sitekey = widget.get_attribute("data-sitekey")
# Step 3: Solve via CaptchaAI
submit = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": driver.current_url,
"json": 1,
})
task_id = submit.json()["request"]
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:
token = result["request"]
break
# Step 4: Inject token into browser session (same cookies)
driver.execute_script(
f'document.getElementById("g-recaptcha-response").value = "{token}";'
)
# Step 5: Submit form from same browser session
driver.find_element(By.CSS_SELECTOR, "form").submit()
Cookie apa saja yang dipakai reCAPTCHA
Cookie inti reCAPTCHA
| cookie | Domain | Tujuan | Masa berlaku |
|---|---|---|---|
_GRECAPTCHA |
.google.com |
Status reCAPTCHA lintas situs | 6 bulan |
rc::a |
Situs sasaran | Data analisis risiko (canvas, hash perilaku mouse) | Sesi |
rc::b |
Situs sasaran | Data analisis risiko (sinyal perilaku) | Sesi |
rc::c |
Situs sasaran | Data analisis risiko (waktu) | Sesi |
rc::d-15# |
Situs sasaran | Penyimpanan status tantangan | Sesi |
Cookie akun Google yang memengaruhi skor
| cookie | Domain | Tujuan | Pengaruh skor |
|---|---|---|---|
SID |
.google.com |
ID sesi Google | +0,1 hingga +0,3 |
HSID |
.google.com |
ID sesi khusus HTTP | Bagian dari kepercayaan sesi |
SSID |
.google.com |
ID sesi aman | Bagian dari kepercayaan sesi |
NID |
.google.com |
Preferensi/sesi Google | +0,05 hingga +0,1 |
1P_JAR |
.google.com |
Personalisasi iklan Google | Sinyal kepercayaan kecil |
Cookie pihak ketiga yang ikut terbaca
| cookie | Domain | Tujuan |
|---|---|---|
CONSENT |
.google.com |
Status persetujuan cookie |
AEC |
.google.com |
Cookie iklan terenkripsi |
SOCS |
.google.com |
Pengaturan izin cookie |
Cookie akun Google (SID, HSID, SSID) terhubung ke identitas pengguna — perlakukan sebagai data sensitif sesuai UU 27/2022 dan jangan simpan cookie milik akun orang lain.
Pertanyaan yang sering diajukan
Apakah solve berbasis API CaptchaAI tetap butuh cookie browser?
Tidak, untuk implementasi standar. Token dihasilkan hanya dari sitekey dan pageurl, tanpa membaca cookie browser Anda, dan valid dikirim dari klien HTTP mana saja.
Kenapa skor reCAPTCHA v3 saya tetap rendah walau jaringan sudah bagus?
Skor v3 lebih ditentukan oleh riwayat cookie sesi (rc::, _GRECAPTCHA) daripada kualitas jaringan. Sesi baru tanpa riwayat cookie mulai dari baseline rendah (0,3–0,5) — pertahankan cookie jar di seluruh request untuk menaikkan baseline itu.
Apakah cookie session reCAPTCHA punya masa berlaku dan perlu disegarkan?
Ya — _GRECAPTCHA bertahan 6 bulan, rc:: hilang saat browser ditutup, dan cookie akun Google (SID, HSID) bertahan 2 tahun tapi bisa dicabut Google kapan saja. Simpan ke disk dan kunjungi ulang situs target secara berkala agar sesi tak dianggap kedaluwarsa di tengah batch job.
Apakah cookie reCAPTCHA yang tersimpan termasuk data pribadi yang perlu dijaga?
Sebagian iya — cookie akun Google (SID, HSID, SSID) terhubung ke identitas pengguna. Simpan dengan akses terbatas dan jangan pernah simpan cookie milik akun orang lain.
Solve API vs solve berbasis browser: kapan saya wajib pakai pendekatan cookie?
Hanya kalau situs memvalidasi kecocokan sesi widget dan pengirim token — muat halaman di browser asli, suntik token, submit dari sesi sama. Untuk mayoritas implementasi, solve API dari server sudah cukup.
Ringkasan
reCAPTCHA menyandarkan penilaian risiko pada tiga kelompok cookie: riwayat perilaku (rc::), kepercayaan lintas situs (_GRECAPTCHA), dan akun Google (SID, HSID). Solve API lewat CaptchaAI tidak memerlukan cookie — token dihasilkan dari sitekey dan pageurl saja. Cookie wajib dikelola hanya kalau situs target memvalidasi rantai sesi browser.
Artikel Terkait
- Cara solve callback reCAPTCHA v2 lewat API
- Menangani Turnstile dan reCAPTCHA v2 di situs yang sama
- Cara kerja mekanisme callback reCAPTCHA v2