Penjelasan Mendalam

Cara reCAPTCHA Mendeteksi Otomasi dan Cara Kerja API Solver

reCAPTCHA menggunakan sistem deteksi berlapis-lapis yang melampaui checkbox yang visible atau image challenge. Ia menjalankan mesin analisis sinyal browser dan perilaku canggih yang mengidentifikasi alat otomasi bahkan sebelum pengguna berinteraksi dengan CAPTCHA. Panduan ini menguraikan setiap metode deteksi yang digunakan reCAPTCHA dan menjelaskan cara API solver seperti CaptchaAI menanganinya.


Layer Deteksi 1: Pemeriksaan Lingkungan JavaScript

reCAPTCHA mengeksekusi pengecekan JavaScript untuk mendeteksi headless browser dan automation framework.

Deteksi sinyal browser otomatis

Indikator otomasi utama:

// Selenium/Puppeteer set this automatically
sinyal browser otomatis === true  // → Automation detected

// Real browser
sinyal browser otomatis === undefined  // or false → Normal browser

Jika sinyal browser otomatis adalah true, reCAPTCHA segera menandai sesi tersebut sebagai otomasi, biasanya menghasilkan skor 0,1 atau lebih rendah.

API Browser Tidak Ada

reCAPTCHA menyelidiki API yang hilang atau diimplementasikan berbeda oleh headless browser:

// Probes reCAPTCHA performs (simplified)
const checks = {
    // Chrome-specific object
    hasChrome: !!window.chrome,
    hasChromeRuntime: !!(window.chrome && window.chrome.runtime),

    // Plugin and MIME type arrays
    pluginCount: navigator.plugins.length,
    mimeTypeCount: navigator.mimeTypes.length,

    // Notification permission
    notificationPermission: Notification.permission,

    // Speech synthesis voices
    speechVoices: window.speechSynthesis.getVoices().length,

    // Performance observer
    hasPerformanceObserver: typeof PerformanceObserver !== "undefined",
};
Probe Diharapkan (Chrome asli) Chrome headless Deteksi
window.chrome Object undefined atau minimal Otomasi
navigator.plugins 2-5 plugin Array kosong Otomasi
navigator.permissions Object dengan query() Mungkin throw atau hilang Otomasi
Notification.permission "default" Mungkin throw Otomasi
window.speechSynthesis Object dengan voices Kosong atau hilang Otomasi

Gangguan Prototype Chain

Alat otomasi canggih menimpa API browser untuk menyembunyikan keberadaannya. reCAPTCHA menguji gangguan tersebut:

// reCAPTCHA may check if native functions were modified
const nativeToString = Function.prototype.toString;
const pluginsToString = navigator.plugins.toString();

// Overridden functions have different toString output:
// Native: "function get plugins() { [native code] }"
// Overridden: "function () { return [...fakePlugins] }"

Layer Deteksi 2: sinyal browser Canvas dan WebGL

Canvas sinyal browser

reCAPTCHA merender elemen tersembunyi di canvas dan membaca kembali data piksel. Hasilnya bervariasi berdasarkan OS, GPU, font rendering engine, dan pengaturan anti-aliasing:

// Simplified canvas sinyal browser
const canvas = document.createElement("canvas");
const ctx = canvas.getContext("2d");
ctx.textBaseline = "alphabetic";
ctx.font = "14px Arial";
ctx.fillStyle = "#f60";
ctx.fillRect(125, 1, 62, 20);
ctx.fillStyle = "#069";
ctx.fillText("CaptchaTest,!", 2, 15);

const sinyal browser = canvas.toDataURL();
// Unique per browser/OS/GPU combination

Sinyal deteksi:

  • sinyal browser identik di berbagai OS/browser → Spoofing terdeteksi
  • Operasi canvas mengembalikan data seragam/blank → Lingkungan headless
  • sinyal browser cocok dengan pola Chrome headless yang dikenal → Ditandai sebagai otomasi

WebGL sinyal browser

const gl = document.createElement("canvas").getContext("webgl");
const debugInfo = gl.getExtension("WEBGL_debug_renderer_info");

const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);

// Real browser: "ANGLE (NVIDIA GeForce RTX 3060 Direct3D11 vs_5_0 ps_5_0)"
// Headless Chrome: "Google Inc. (Google SwiftShader)" ← Strong bot signal

SwiftShader adalah software GPU renderer Google yang digunakan saat hardware GPU tidak tersedia — indikator lingkungan headless yang jelas.


Layer Deteksi 3: Analisis Perilaku

Ini adalah layer deteksi reCAPTCHA yang terkuat. Ia memantau perilaku pengguna dari page load sampai form submission.

Analisis pergerakan tikus

reCAPTCHA records:
  ├─ Mouse coordinates at ~60fps intervals
  ├─ Velocity and acceleration at each point
  ├─ Trajectories between clickable elements
  ├─ Hover patterns over links and buttons
  ├─ Micro-movements while "stationary"
  └─ Natural overshoot when targeting elements

Human pattern:

  - Curved paths with variable speed
  - Natural acceleration/deceleration (Fitts's Law)
  - Random micro-jitter during hovering
  - Occasional overshoot and correction

Bot pattern:

  - Zero mouse events (no mouse simulation)
  - Straight lines at constant speed
  - Perfect targeting (no overshoot)
  - Identical patterns across sessions

Analisis papan ketik

reCAPTCHA records:
  ├─ Inter-key interval for each key pair
  ├─ Key hold duration (keydown to keyup)
  ├─ Error rate (backspace frequency)
  ├─ Typing rhythm consistency
  └─ Input method (keyboard vs paste vs JavaScript)

Human pattern:

  - Variable intervals (80-300ms typical)
  - Faster for common character pairs
  - Occasional errors and corrections
  - keydown → keypress → keyup sequence

Bot pattern:

  - Constant intervals or instant input
  - No keypress events (value set via JS)
  - Zero errors
  - All characters appear simultaneously

Urutan waktu dan interaksi

reCAPTCHA records:
  ├─ Time from page load to first interaction
  ├─ Time from CAPTCHA rendering to click
  ├─ Scroll events and depths
  ├─ Focus/blur events on form fields
  └─ Tab between fields vs click between fields

Suspicious patterns:

  - First interaction < 1 second after page load
  - CAPTCHA clicked immediately after rendering
  - No scroll events before interacting with below-fold content
  - All form fields filled in <500ms

Layer Deteksi 4: Analisis Jaringan dan IP

Database Reputasi IP

Google mempertahankan intelijen IP yang ekstensif:

  • Rentang datacenter yang dikenal: AWS (52.x.x.x, 54.x.x.x), GCP, Azure, DigitalOcean, dll.
  • Proxy/VPN provider yang dikenal: NordVPN, ExpressVPN, layanan proxy komersial
  • Tor exit node: Daftar publik, diperbarui berkala
  • Riwayat penyalahgunaan: IP yang terlibat spam, scraping, atau CAPTCHA farming
  • Pola geografis: Perubahan lokasi cepat menandai pola VPN hopping

TLS sinyal browser

Setiap HTTP client menghasilkan sinyal browser TLS handshake yang unik (JA3/JA4):

Chrome 120:    JA3 = 771,4865-4866-4867-49195-49199-49196..
Python/requests: JA3 = 771,4866-4867-4865-49196-49200..
curl/libcurl:  JA3 = 771,49196-49200-159-52393-52392..

reCAPTCHA memvalidasi bahwa TLS sinyal browser cocok dengan User-Agent yang dinyatakan. User-Agent Chrome dengan TLS sinyal browser Python ditandai sebagai otomasi.

Analisis HTTP Header

Real Chrome headers:
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,...
  Accept-Language: en-US,en;q=0.9
  Accept-Encoding: gzip, deflate, br
  Sec-CH-UA: "Not_A Brand";v="8", "Chromium";v="120"
  Sec-CH-UA-Platform: "Windows"
  Sec-Fetch-Dest: document
  Sec-Fetch-Mode: navigate

Automation headers (missing or different):

  - Missing Sec-CH-UA headers
  - Missing Accept-Language
  - Non-standard Accept header
  - Missing Sec-Fetch-* headers

Layer Deteksi 5: Intelijen Lintas Sesi

reCAPTCHA melacak pola di beberapa sesi dan situs:

  • Korelasi sinyal browser sesi: sinyal browser browser yang sama membuat request cepat di banyak situs
  • Analisis pola solve: Jawaban benar dalam waktu yang konsisten (waktu solve manusia bervariasi)
  • Korelasi respons challenge: Beberapa sesi menyelesaikan challenge serupa dalam hitungan detik
  • Timeline cookie: Beberapa sesi baru dari IP yang sama tanpa cookie persistence

Cara API Solver Menangani Deteksi

API solver seperti CaptchaAI melewati sistem deteksi reCAPTCHA dengan beroperasi di lingkungan yang benar-benar terpisah:

Your automation:
  Extracts sitekey + pageurl from target page
      ↓
  Sends to CaptchaAI API (HTTPS request to ocr.captchaai.com)
      ↓
CaptchaAI's solver environment:
  ├─ Real browser with genuine sinyal browser (not headless)
  ├─ Human-like behavioral patterns
  ├─ Clean residential IP
  ├─ Valid cookies and session history
  ├─ Matching sinyal TLS/header
  └─ Solves the challenge with human-like behavior
      ↓
  Returns valid g-recaptcha-response token
      ↓
Your automation:
  Submits token to target website
      ↓
Target website validates token with Google
  → Google sees a legitimate solve from a trusted environment
  → Token validated: success = true

Insight utama: Otomasi Anda tidak pernah berinteraksi dengan reCAPTCHA secara langsung. Solver menangani semua sinyal browser, analisis perilaku, dan challenge solving dalam lingkungan yang dioptimalkan untuk melewati setiap layer deteksi. Kode Anda hanya perlu mengirimkan token yang dihasilkan.

Contoh Python

import requests
import time

API_KEY = "YOUR_API_KEY"

# Your automation only needs sitekey and pageurl
submit = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": "6LcR_RsTAAAAAN_r0GEkGBfq3L7KmU5JbPHJtwNp",
    "pageurl": "https://staging.example.com/qa-login",
    "json": 1,
})

task_id = submit.json()["request"]

# Poll for token
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"]
        # Submit this token to the target site's form
        print("Token received — submit to target form")
        break

Contoh Node.js

const axios = require("axios");

async function solveRecaptcha(sitekey, pageurl) {
    const API_KEY = "YOUR_API_KEY";

    const { data: submit } = await axios.post(
        "https://ocr.captchaai.com/in.php",
        new URLSearchParams({
            key: API_KEY,
            method: "userrecaptcha",
            googlekey: sitekey,
            pageurl: pageurl,
            json: 1,
        })
    );

    const taskId = submit.request;

    for (let i = 0; i < 60; i++) {
        await new Promise(r => setTimeout(r, 5000));
        const { data: result } = await axios.get(
            "https://ocr.captchaai.com/res.php",
            { params: { key: API_KEY, action: "get", id: taskId, json: 1 } }
        );

        if (result.status === 1) return result.request;
    }

    throw new Error("Timeout");
}

Pertanyaan Umum

Bisakah reCAPTCHA mendeteksi bahwa API solver telah digunakan?

reCAPTCHA memvalidasi token terhadap catatannya sendiri. Jika lingkungan solver menghasilkan solve yang sah dengan perilaku seperti manusia, token tersebut valid. Google melihat solve normal oleh manusia, bukan layanan pihak ketiga. Token itu sendiri tidak membawa informasi tentang cara pembuatannya.

Apakah Selenium selalu memicu deteksi reCAPTCHA?

Selenium default dengan ChromeDriver default segera terdeteksi karena sinyal browser otomatis = true, API Chrome yang hilang, dan header HTTP ChromeDriver. Selenium yang dikonfigurasi secara standar (undetected-chromedriver, konfigurasi standar) dapat mengurangi deteksi tapi tidak menghilangkannya. API solver menghindari masalah ini sepenuhnya karena tidak berinteraksi dengan reCAPTCHA di browser Anda.

Seberapa cepat reCAPTCHA memperbarui metode deteksinya?

Google terus memperbarui heuristik deteksi reCAPTCHA. Pembaruan besar terjadi setiap beberapa bulan. Metode deteksi headless browser baru biasanya diterapkan dalam beberapa minggu setelah alat otomasi baru dirilis. API solver seperti CaptchaAI segera beradaptasi karena mereka mempertahankan lingkungan solving yang dioptimalkan.

Apakah reCAPTCHA membagikan data deteksi lintas situs?

Ya. Risk analysis reCAPTCHA menggabungkan sinyal lintas situs melalui cookie _GRECAPTCHA dan server-side intelligence Google. Perilaku buruk di satu situs yang dilindungi reCAPTCHA dapat menurunkan skor di situs lain yang menggunakan profil browser yang sama.


Ringkasan

reCAPTCHA mendeteksi otomasi melalui lima layer: pemeriksaan lingkungan JavaScript (deteksi headless), sinyal browser canvas/WebGL, analisis perilaku (mouse, keyboard, scroll), reputasi jaringan/IP, dan intelijen lintas sesi. API solver seperti CaptchaAI menangani kelima layer dengan menyelesaikan challenge di lingkungan terpisah yang dioptimalkan dan mengembalikan token yang valid. Kode otomasi Anda tidak pernah berinteraksi langsung dengan reCAPTCHA.

Artikel Terkait

  • Cara Solve reCAPTCHA v2 Callback via API
  • Penanganan reCAPTCHA v2 + Turnstile di Situs yang Sama
  • Deep Dive reCAPTCHA Enterprise Assessment API
Komentar dinonaktifkan untuk artikel ini.