Teknik Açıklamalar

reCAPTCHA, Otomasyonu Nasıl Algılar ve API Çözücüler Nasıl Çalışır?

reCAPTCHA, görünür onay kutusunun veya görüntü sorununun çok ötesine geçen çok katmanlı bir algılama sistemi kullanır. Kullanıcı CAPTCHA ile etkileşime girmeden önce otomatik araçları tanımlayan gelişmiş bir test profil yapılandırması ve davranış analizi motorunu çalıştırır. Bu kılavuz, reCAPTCHA'nın kullandığı tüm algılama yöntemlerini ayrıntılı olarak açıklıyor ve CaptchaAI gibi API tabanlı çözümleyicilerin tüm bunları nasıl ele aldığını açıklıyor.


Algılama katmanı 1: JavaScript ortamı araştırması

reCAPTCHA, denetimsiz tarayıcıları ve otomasyon çerçevelerini tespit etmek için JavaScript araştırmaları yürütür.

Birincil otomasyon göstergesi:

// Selenium/Puppeteer set this automatically
navigator.userAgent === true  // → Automation detected

// Real browser
navigator.userAgent === undefined  // or false → Normal browser

navigator.userAgent, true olduğunda reCAPTCHA, oturumu hemen otomatik olarak işaretler ve genellikle 0,1 veya daha düşük bir puanla sonuçlanır.

Eksik tarayıcı API'leri

reCAPTCHA, headless tarayıcıların atladığı veya farklı şekilde uyguladığı API'leri araştırır:

// 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",
};
Prob Beklenen (gerçek Chrome) Headless Krom Algılama
window.chrome Nesne tanımsız veya minimum Otomasyon
navigator.plugins 2-5 eklenti Boş dizi Otomasyon
navigator.permissions Sorgu() içeren nesne Atılabilir veya kaybolabilir Otomasyon
Notification.permission "varsayılan" Atabilir Otomasyon
window.speechSynthesis Sesli nesne Boş veya eksik Otomasyon

Prototip zinciri kurcalama

Gelişmiş otomasyon araçları, varlıklarını gizlemek için tarayıcı API'lerini geçersiz kılar. Kurcalamaya karşı reCAPTCHA testleri:

// 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] }"

Algılama katmanı 2: Canvas ve WebGL test profil yapılandırması alma

Kanvas test profil yapılandırması

reCAPTCHA, bir tuval üzerinde gizli öğeleri oluşturur ve piksel verilerini geri okur. Sonuç, işletim sistemine, GPU'ya, yazı tipi oluşturma motoruna ve kenar yumuşatma ayarlarına göre değişir:

// Simplified canvas test profil yapılandırması
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 test profil yapılandırması = canvas.toDataURL();
// Unique per browser/OS/GPU combination

Algılama sinyalleri:

  • Bildirilen farklı OS/browsers →'de aynı test profil yapılandırması algılandı
  • Tuval işlemleri tekdüze /blank verilerini döndürür → Headless ortam
  • test profil yapılandırması, bilinen headless Chrome modeliyle eşleşiyor → Otomasyon işaretlendi

WebGL test profil yapılandırması

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, herhangi bir donanım GPU'su bulunmadığında kullanılan Google'ın yazılım GPU oluşturucusudur; net bir headless ortam göstergesidir.


Tespit katmanı 3: Davranış analizi

Bu reCAPTCHA'nın en güçlü algılama katmanıdır. Sayfa yüklemesinden form gönderimine kadar kullanıcı davranışını izler.

Fare hareketi analizi

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

Klavye analizi

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

Zamanlama ve etkileşim dizisi

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

Algılama katmanı 4: Ağ ve IP analizi

IP itibar veritabanı

Google kapsamlı IP istihbaratını korur:

  • Bilinen veri merkezi aralıkları: AWS (52.x.x.x, 54.x.x.x), GCP, Azure, DigitalOcean vb.
  • Bilinen proxy/VPN sağlayıcıları: NordVPN, ExpressVPN, ticari proxy hizmetleri
  • Tor çıkış düğümleri: Düzenli olarak güncellenen genel liste
  • Kötüye kullanım geçmişi: Spam, kazıma veya CAPTCHA çiftçiliği yapan IP'ler
  • Coğrafi modeller: Hızlı konum değişiklikleri VPN atlama modellerini işaretler

TLS test profil yapılandırması

Her HTTP istemcisi benzersiz bir TLS el sıkışma test profil yapılandırması (JA3/JA4) üretir:

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, TLS parmak izinin bildirilen Kullanıcı Aracısı ile eşleştiğini doğrular. Python TLS parmak izine sahip bir Chrome Kullanıcı Aracısı, otomasyon olarak işaretlenir.

HTTP başlık analizi

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

Algılama katmanı 5: Oturumlar arası zeka

reCAPTCHA, birden fazla oturum ve sitedeki kalıpları izler:

  • Oturum test profil yapılandırması korelasyonu: Birçok sitede hızlı isteklerde bulunan aynı tarayıcı test profil yapılandırması
  • Çözme modeli analizi: Tutarlı zaman aralıklarında doğru cevaplar (insanların çözme süreleri değişkendir)
  • Zorluk yanıt korelasyonu: Aynı zorlukları saniyeler içinde çözen birden fazla oturum
  • Çerez zaman çizelgesi: Çerez kalıcılığı olmadan aynı IP'den birden fazla yeni oturum

API tabanlı çözümleyiciler algılamayı nasıl gerçekleştirir?

CaptchaAI gibi API tabanlı çözücüler, tamamen ayrı bir ortamda çalışarak reCAPTCHA'nın algılama sistemini atlar:

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 test profil yapılandırması (not headless)
  ├─ Human-like behavioral patterns
  ├─ Clean residential IP
  ├─ Valid cookies and session history
  ├─ Matching TLS/header fingerprints
  └─ 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

Önemli bilgi: Otomasyonunuz hiçbir zaman reCAPTCHA ile doğrudan etkileşime girmez. Çözücü, tüm test profil yapılandırması alma, davranış analizi ve sorgulama tamamlama işlemlerini, her algılama katmanını geçecek şekilde optimize edilmiş bir ortamda gerçekleştirir. Kodunuzun yalnızca ortaya çıkan jetonu göndermesi gerekir.

Python örneği

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

Node.js örneği

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");
}

Sık sorulan sorular

reCAPTCHA bir API çözücünün kullanıldığını tespit edebilir mi?

reCAPTCHA, jetonu kendi kayıtlarına göre doğrular. Çözücü ortamı insan benzeri davranışla meşru bir çözüm ürettiyse belirteç geçerlidir. Google, üçüncü taraf bir hizmet değil, normal bir insan çözümü görüyor. Tokenın kendisi nasıl oluşturulduğuna dair bilgi taşımaz.

Selenyum kullanmak her zaman reCAPTCHA tespitini tetikler mi?

Varsayılan ChromeDriver'a sahip varsayılan Selenyum, navigator.userAgent = true, eksik Chrome API'leri ve ChromeDriver HTTP üstbilgileri nedeniyle hemen algılanır. Gizli olarak yapılandırılmış Selenyum (algılanmayan krom sürücü, gizli eklentiler) algılamayı azaltabilir ancak ortadan kaldırmaz. API tabanlı çözüm, tarayıcınızdaki reCAPTCHA ile etkileşime girmeyerek sorunu tamamen ortadan kaldırır.

reCAPTCHA algılama yöntemlerini ne kadar hızlı günceller?

Google, reCAPTCHA'nın tespit buluşsal yöntemini sürekli olarak günceller. Büyük güncellemeler birkaç ayda bir gerçekleşir. Yeni gözetimsiz tarayıcı algılama yöntemleri genellikle yeni bir otomasyon aracının piyasaya sürülmesinden sonraki haftalar içinde devreye alınır. CaptchaAI gibi API çözücü hizmetleri, kendi optimize edilmiş çözüm ortamlarını korudukları için bu değişikliklere anında uyum sağlar.

reCAPTCHA, algılama verilerini web siteleri arasında paylaşır mı?

Evet. reCAPTCHA'nın risk analizi, _GRECAPTCHA çerezi ve Google'ın sunucu tarafı zekası aracılığıyla siteler arası sinyalleri içerir. reCAPTCHA korumalı bir sitedeki kötü davranış, aynı tarayıcı profilini kullanan diğer sitelerdeki puanların düşmesine neden olabilir.


Özet

reCAPTCHA, otomasyonu beş katman aracılığıyla algılar: JavaScript ortamı araştırması (headless algılama), canvas/WebGL test profil yapılandırması alma, davranış analizi (fare, klavye, kaydırma), ağ/IP itibarı ve oturumlar arası zeka. API tabanlı çözücüler gibiCaptchaAIZorlukları ayrı, optimize edilmiş bir ortamda çözerek ve geçerli bir jeton döndürerek beş katmanın tamamını ele alın. Otomasyon kodunuz hiçbir zaman reCAPTCHA ile doğrudan etkileşime girmez, bu da onu algılama sistemi için görünmez kılar.

İlgili Makaleler

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