reCAPTCHA v3 Puanlama Nasıl Çalışır: Görünmez Risk Motorunu Anlamak ve Meşru Otomasyon için Geçer Puan Almak

reCAPTCHA v3, 0.0–1.0 arası sürekli bir risk puanı döndürür. Bu rehber, puanlama modelini, Google'ın birleştirdiği sinyalleri, IP itibarının rolünü ve ProxyHat residential proxy'lerle meşru otomasyonda nasıl geçer puan alınacağını açıklar.

How reCAPTCHA v3 Scoring Works in 2026: Signals, Scores, and Legitimate Automation
Bu makalede

reCAPTCHA v3, 2018'de tanıtıldığından beri web'deki baskın görünmez anti-bot mekanizması haline geldi. Kullanıcıya bir bulmaca göstermez; bunun yerine her sayfa etkileşiminde grecaptcha.execute() üzerinden 0.0 ile 1.0 arasında sürekli bir risk puanı döndürür. QA ve otomasyon mühendisleri için bu, klasik "görüntüyü çöz" yaklaşımından çok daha zor bir engeldir: puan, davranışın ötesinde IP itibarı ve tarayıcı parmak izi gibi bileşenleri de içerir. Bu rehber, reCAPTCHA v3 puanlama nasıl çalışır sorusunu teknik derinlikte yanıtlar ve meşru otomasyonun geçer puan alması için pratik bir yaklaşım sunar.

Bu içerik, yetkili güvenlik testi, erişilebilirlik QA otomasyonu ve kendi siteniz üzerinde anti-bot doğrulaması yapan geliştiriciler için yazılmıştır. Hesap çalma, ödeme dolandırıcılığı veya toplu hesap oluşturma gibi kötüye kullanım senaryoları bu kapsamın dışındadır ve CFAA ve GDPR kapsamında ciddi hukuki sonuçlar doğurabilir.

reCAPTCHA v3 Puanlama Nasıl Çalışır: Temel Model

reCAPTCHA v3'ün çekirdeği, grecaptcha.execute(siteKey, {action: 'login'}) çağrısı başına bir token ve bu tokena bağlı bir risk puanı üretmektir. Token, istemci tarafında ~2 dakika süreyle geçerlidir ve sunucuya gönderilir. Sunucu, tokenı Google'ın siteverify uç noktasına POST eder ve yanıt olarak score, action, hostname, success ve hata kodları alır.

Puan 0.0 ile 1.0 arasında bir ondalık sayıdır. Google, puanı dahili olarak on bir ayrık kovaya (bucket) yuvarlar — tipik olarak 0.0, 0.1, 0.2, … 0.9 ve 1.0. Yani 0.47 gibi bir değer pratikte ya 0.4 ya da 0.5 kovasında ele alınır. Bu, puanın gerçek çözünürlüğünün ~0.1 adım olduğunu gösterir; daha ince farklar anlamsızdır.

Tipik Site Eşikleri

Google, eşiği sitenin kendisinin belirlemesini önerir; ancak pratikte çoğu site benzer kalıplar kullanır:

Puan AralığıTipik Site DavranışıKullanım Senaryosu
< 0.3Engelle (block) veya sessiz reddetSpam, credential stuffing
0.3 – 0.6Zorluk göster (challenge) veya ikincil doğrulamaŞüpheli ama belki insandır
> 0.6İzin ver (allow)Normal kullanıcı trafiği

recaptcha v3 score değeri tek başında yeterli değildir; action ve hostname alanlarının da eşleşmesi gerekir. Bir login action'ı için üretilmiş token, register action'ı için doğrulanamaz. Bu, token yeniden kullanım (replay) saldırılarına karşı temel bir savunmadır.

Teknik Bağlam: Neden Bu Problem Var

Klasik reCAPTCHA v2, kullanıcıya bir görüntü bulmacası gösterir ve çözümü doğrular. Bu yaklaşım iki sorun doğurdu: (1) kullanıcı deneyimini bozuyor ve dönüşümü düşürüyordu; (2) botlar görüntü tanıma modelleri ve bulmaca çözme servisleriyle aşırı kolaylaşıyordu. Google, v3'te bulmacayı tamamen kaldırdı ve bunun yerine istemci tarafında sessizce telemetri toplayan, sunucu tarafında puan döndüren bir model benimsedi.

Bu modelin zorluğu, puanın bir kara kutu olmasıdır. Google, hangi sinyallerin hangi ağırlıkla kullanıldığını açıklamaz. Ancak yıllar içinde güvenlik araştırmacıları ve otomasyon mühendisleri, puanı etkileyen başlıca bileşenleri ampirik olarak tespit etmiştir. Google'ın resmi reCAPTCHA v3 dokümantasyonu, puanın "kullanıcı etkileşim pattern'lerine" dayandığını belirtir ancak detay vermez.

Google'ın Birleştirdiği Sinyaller

reCAPTCHA v3 puanı, aşağıdaki sinyal kümelerinin birleştirilmesiyle oluşur:

1. Davranışsal Telemetri

Sayfa yüklendikten sonra grecaptcha.execute() çağrılana kadar geçen sürede toplanan veriler:

  • Fare hareketleri: hız, ivme, düzlük, mikro-titremeler. İnsan fareleri doğrusal ve pürüzsüz hareket etmez; botlar genellikle Bezier eğrileriyle bile çok düzgün hareket eder.
  • Scroll pattern'i: scroll hızındaki dalgalanmalar, dur-kalk davranışı.
  • Klavye zamanlaması: tuşlar arası aralık (keystroke timing), backspace kullanımı.
  • Sayfa etkileşim süresi: sayfa açıldıktan kaç ms sonra form gönderiliyor. 50 ms'de form doldurmak bot sinyalidir.

2. Google Çerez Grafiği

Eğer tarayıcıda bir Google oturumu (örneğin YouTube veya Gmail çerezi) varsa, Google bu kullanıcıyı çerez grafiği üzerinden tanıyabilir. Daha önce Google ekosisteminde "insan" olarak davranmış bir kullanıcı, daha yüksek puan alır. Bu, temiz bir tarayıcı profili ( hiç Google çerezi yok) ile ilk ziyarette puanın genellikle daha düşük olmasının nedenidir.

3. Tarayıcı Karakteristikleri

Google, tarayıcının TLS parmak izini, User-Agent, platform, dil, ekran çözünürlüğü ve JavaScript motoru özelliklerini toplar. Özellikle:

  • JA3/JA4 TLS parmak izi: TLS ClientHello'daki cipher suite sıralaması, extensions sırası. Headless Chrome'un JA3 parmak izi, normal Chrome'dan farklı olabilir.
  • Canvas/WebGL parmak izi: GPU ve sürücüye bağlı olarak canvas render çıktısı. Headless modda canvas parmak izi farklıdır.
  • navigator.webdriver: Selenium/Puppeteer kontrollü tarayıcılarda true değerini alır. Stealth eklentileri bunu gizlemeye çalışır.
  • JS sinyalleri: window.chrome varlığı, plugin listesi, permissions.query davranışı.

4. IP İtibarı

Belki de proxy kullanıcıları için en kritik bileşen budur. Google, IP'yi aşağıdaki açılardan değerlendirir:

  • ASN tipi: Datacenter ASN'leri (AWS, GCP, Azure, DigitalOcean, OVH) genellikle düşük puan alır. ISP ASN'leri (residential) ise yüksek puan alır.
  • Geçmiş davranış: Aynı IP'den daha önce spam, scraping veya credential stuffing yapılmışsa, IP "kirli" işaretlenir.
  • Coğrafi tutarlılık: IP'nin geo-lokasyonu ile tarayıcının navigator.language ve zaman dilimi tutarlı mı?

İşte bu noktada recaptcha score 0.3 eşiği devreye girer: bir datacenter IP'si, davranış mükemmel olsa bile puanı 0.3'ün altına çekebilir. Çünkü Google, IP itibarını davranışsal sinyallerle birlikte füzyonlar; tek bir güçlü "bot" sinyali tüm puanı çökertebilir.

Datacenter IP'ler Neden Puanı Düşürür

Bu, pratikte en sık karşılaşılan sorundur. Bir QA mühendisi, gerçek bir tarayıcıda, insani gecikmelerle, gerçek fare hareketleriyle form doldurur ve yine de 0.2 puan alır. Neden?

Çünkü Google'ın modeli, ASN tipini güçlü bir öncül (prior) olarak kullanır. Bir AWS us-east-1 IP'si (örneğin 54.144.x.x), "bu IP büyük ihtimalle bir sunucudur, sunuculardan gelen trafiğin büyük kısmı bot" öncülünü taşır. Bu öncül, davranışsal sinyallerle ağırlıklandırılır; ancak eğer davranışsal sinyaller nötrse ("insan gibi" ama "kesinlikle insan" değil), IP öncülü puanı baskılar.

Bu, residential proxy'lerin neden gerekli olduğunu açıklar. Bir residential IP, gerçek bir ISP'den (örneğin Comcast, Deutsche Telekom, Vodafone) atanmıştır ve Google'ın modelinde "ev kullanıcısı" öncülü taşır. Bu öncül, davranışsal sinyaller nötr olsa bile puanı yukarı çeker.

ProxyHat'ın residential ağı, 100+ ülkede gerçek ISP IP'leri sunar. Kullanıcı adında -country-US bayrağı ile ABD residential IP'leri alabilirsiniz:

http://user-country-US:PASSWORD@gate.proxyhat.com:8080

Bu, Google'ın IP itibarı bileşenini temiz tutar ve davranışsal sinyallerin puanı belirlemesine olanak tanır.

Sunucu Tarafında Token Doğrulama: siteverify

İstemci grecaptcha.execute() ile bir token alır ve bunu form verisiyle birlikte sunucuya gönderir. Sunucu, tokenı Google'a doğrulatmak zorundadır:

POST https://www.google.com/recaptcha/api/siteverify
Content-Type: application/x-www-form-urlencoded

secret=YOUR_SECRET_KEY&token=TOKEN_FROM_CLIENT&remoteip=USER_IP

Yanıt örneği:

{
  "success": true,
  "score": 0.7,
  "action": "login",
  "challenge_ts": "2026-01-15T12:00:00Z",
  "hostname": "example.com",
  "error-codes": []
}

Sunucu tarafında üç kritik kontrol yapılmalıdır:

  1. score eşiği: score >= 0.5 (veya sitenin belirlediği eşik).
  2. action eşleşmesi: Dönen action, beklenen action ile birebir eşleşmeli. login tokenı register için kullanılamaz.
  3. hostname eşleşmesi: Dönen hostname, sitenin domainiyle eşleşmeli. Bu, tokenın başka bir siteden çalınıp yeniden kullanılmasını engeller.

Bu kontrollerden herhangi biri başarısız olursa, istek reddedilmelidir. Google, siteverify yanıtının önbelleğe alınmamasını önerir; her token yalnızca bir kez doğrulanabilir.

Meşru Otomasyon için Pratik Yaklaşım: ProxyHat + Gerçek Tarayıcı

Aşağıdaki yaklaşım, yetkili test (kendi siteniz veya izin verilen bir site üzerinde) ve erişilebilirlik QA otomasyonu için tasarlanmıştır. Amaç, recaptcha v3 bypass değil, puanın site eşiğinin üzerinde kalmasıdır.

Bileşenler

  • Gerçek tarayıcı: Headless olmayan Chromium veya stealth modunda Playwright/Puppeteer. navigator.webdriver gizlenmeli, JA3 parmak izi normal Chrome ile uyumlu olmalı.
  • Residential proxy: ProxyHat residential ağı, -country-US ile ABD IP'leri.
  • İnsani etkileşim: Sayfa yüklendikten sonra 2-5 saniye bekle, fareyi hareket ettir, scroll yap, form alanlarına klavye ile yaz (clipboard paste değil).
  • Tutarlı coğrafi sinyal: Proxy ülkesi ile tarayıcının navigator.language ve zaman dilimi tutarlı olmalı. ABD proxy'si ile en-US dil ve America/New_York zaman dilimi.

Python Örneği

from playwright.sync_api import sync_playwright
import time
import random

PROXY = "http://user-country-US:PASSWORD@gate.proxyhat.com:8080"

with sync_playwright() as p:
    browser = p.chromium.launch(
        headless=False,
        proxy={"server": PROXY},
        args=[
            "--disable-blink-features=AutomationControlled",
            "--lang=en-US",
        ],
    )
    context = browser.new_context(
        locale="en-US",
        timezone_id="America/New_York",
        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",
    )
    page = context.new_page()
    page.goto("https://example.com/login")

    # Insani bekleme
    time.sleep(random.uniform(2.0, 4.0))

    # Fare hareketi
    page.mouse.move(random.randint(100, 400), random.randint(100, 400))
    page.mouse.move(random.randint(200, 600), random.randint(200, 500))

    # Scroll
    page.mouse.wheel(0, random.randint(50, 150))
    time.sleep(random.uniform(0.5, 1.5))

    # Form doldur (klavye ile, harf harf)
    page.fill("#email", "")
    page.type("#email", "test@example.com", delay=random.randint(50, 120))
    page.fill("#password", "")
    page.type("#password", "securepass123", delay=random.randint(50, 120))

    time.sleep(random.uniform(1.0, 2.0))

    # reCAPTCHA token'ı al
    token = page.evaluate("""
        async () => {
            await new Promise(r => setTimeout(r, 500));
            return await grecaptcha.execute('SITE_KEY', {action: 'login'});
        }
    """)
    print(f"Token: {token[:40]}...")

    # Formu gönder
    page.click("button[type=submit]")
    page.wait_for_timeout(3000)
    browser.close()

Bu örnekte kritik noktalar:

  • delay parametresi, her tuş vuruşu arasında 50-120 ms gecikme ekler. İnsanlar harf harf ve düzensiz hızda yazar.
  • --disable-blink-features=AutomationControlled bayrağı, navigator.webdriver'ı gizlemeye yardımcı olur.
  • Proxy ülkesi (US) ile tarayıcı dili (en-US) ve zaman dilimi (America/New_York) tutarlıdır.
  • Sayfa etkileşim süresi 2-5 saniye, gerçek kullanıcı ortalamasına yakındır.

SOCKS5 Alternatifi

Eğer SOCKS5 tercih ediyorsanız:

socks5://user-country-US:PASSWORD@gate.proxyhat.com:1080

Playwright'da SOCKS5 proxy için:

proxy={"server": "socks5://gate.proxyhat.com:1080",
       "username": "user-country-US",
       "password": "PASSWORD"}

Yaygın Hatalar ve Edge Case'ler

1. Headless Mode ve navigator.webdriver

Vanilla headless Chromium, navigator.webdriver === true döndürür. Bu, reCAPTCHA v3 için güçlü bir bot sinyalidir. Çözüm: ya headless=False kullanın (Xvfb ile sunucuda çalıştırabilirsiniz) ya da --disable-blink-features=AutomationControlled bayrağıyla birlikte playwright-stealth gibi bir eklenti kullanın.

2. Coğrafi Tutarsızlık

Almanya residential proxy'si (-country-DE) ile en-US dil ve America/New_York zaman dilimi kullanmak, Google'ın modelinde tutarsızlık sinyali oluşturur. Proxy ülkesine göre dil ve zaman dilimini ayarlayın:

http://user-country-DE-city-berlin:PASSWORD@gate.proxyhat.com:8080

Bu IP için de-DE dili ve Europe/Berlin zaman dilimi kullanın.

3. Tek IP'de Yüksek İstek Hacmi

Bir residential IP'den dakikada 50+ grecaptcha.execute() çağrısı, IP'yi "şüpheli" işaretleyebilir. ProxyHat'ın rotating residential modunda, her istekte yeni IP almak için session bayrağını kaldırın:

http://user-country-US:PASSWORD@gate.proxyhat.com:8080

Sticky session gerekirse:

http://user-session-abc123-country-US:PASSWORD@gate.proxyhat.com:8080

4. Token Süresi Dolması

Token, ~120 saniye süreyle geçerlidir. Eğer form doldurma uzun sürerse, token süresi dolar ve siteverify timeout-or-duplicate hatası döndürür. Çözüm: form gönderiminden hemen önce grecaptcha.execute() çağırın.

5. Action Eşleşmemesi

İstemci {action: 'login'} ile token üretip sunucu register action'ını bekliyorsa, siteverify success: true döndürür ama action farklı olur. Sunucu mutlaka action eşleşmesini kontrol etmelidir.

ProxyHat Kurulumu ve İç Bağlantılar

ProxyHat residential proxy'leri, reCAPTCHA v3 puanlamasında IP itibarı bileşenini temiz tutmak için tasarlanmıştır. Başlamak için:

  1. ProxyHat fiyatlandırma sayfasından residential proxy paketinizi seçin.
  2. Dashboard'dan kullanıcı adı ve şifrenizi alın.
  3. Kullanıcı adına -country-US (veya hedef ülke) bayrağını ekleyin.
  4. Gateway: gate.proxyhat.com:8080 (HTTP) veya :1080 (SOCKS5).

Diğer ilgili kaynaklar:

Nerede Uygun, Nerede Değil

Bu rehberin kapsamı, aşağıdaki meşru senaryolarla sınırlıdır:

  • Kendi siteniz üzerinde test: reCAPTCHA v3 entegrasyonunuzu QA yapıyorsunuz ve puan dağılımını ölçmeniz gerekiyor.
  • Erişilebilirlik QA otomasyonu: Ekran okuyucu testleri için form akışlarını otomatize ediyorsunuz.
  • Yetkili penetrasyon testi: Bir müşteri, kendi sitesinde anti-bot kontrollerini test etmeniz için yazılı yetki verdi.
  • Güvenlik araştırması: Akademik veya savunma amaçlı anti-bot mekanizması analizi.

Aşağıdaki senaryolar kapsam dışıdır ve yasa dışı olabilir:

  • Hesap oluşturma spam'i (mass account registration).
  • Credential stuffing / brute-force saldırıları.
  • Ödeme dolandırıcılığı veya sahte işlem.
  • Başka bir kullanıcının hesabına izinsiz erişim.
  • Toplu ticket/sneaker satın alma (scalping).

ABD Computer Fraud and Abuse Act (CFAA), izinsiz erişimi ve "aşırı kullanım"ı suç sayar. GDPR ise kişisel verilerin izinsiz işlenmesini düzenler. Bir sitenin ToS'unu ihlal etmek, CFAA kapsamında "aşırı erişim" olarak değerlendirilebilir. Her zaman yazılı yetki aldığınızdan emin olun.

Key Takeaways

Önemli Çıkarımlar

  • reCAPTCHA v3, 0.0–1.0 arası sürekli risk puanı döndürür; on bir kovaya ayrılır ve ~0.1 çözünürlüğe sahiptir.
  • Tipik eşikler: <0.3 engelle, 0.3–0.6 zorluk, >0.6 izin ver.
  • Puan; davranışsal telemetri, Google çerez grafiği, tarayıcı parmak izi ve IP itibarının birleştirilmesiyle oluşur.
  • Datacenter IP'ler, davranış mükemmel olsa bile puanı 0.3'ün altına çekebilir; residential proxy gerekir.
  • Sunucu tarafında action ve hostname eşleşmesi zorunludur; token ~120 saniye geçerlidir.
  • Gerçek tarayıcı + residential proxy + insani etkileşim + coğrafi tutarlılık = geçer puan.
  • Yalnızca yetkili test ve erişilebilirlik QA için kullanın; CFAA ve GDPR kapsamında izinsiz kullanım suçtur.

SSS

reCAPTCHA v3 puanlama nasıl çalışır?

reCAPTCHA v3, grecaptcha.execute() çağrısı başına 0.0 ile 1.0 arasında sürekli bir risk puanı döndürür. 1.0 insana en yakın, 0.0 bota en yakın anlamına gelir. Puan, fare/scroll/klavye zamanlaması, sayfa etkileşim telemetrisi, Google çerez grafiği, tarayıcı özellikleri ve IP itibarı gibi sinyallerin birleştirilmesiyle hesaplanır. Sunucu tarafında siteverify ile doğrulanır ve site kendi eşiğini belirler.

reCAPTCHA v3 puanlaması proxy kullanıcıları için neden önemli?

Puanın önemli bir bileşeni IP itibarıdır. Datacenter ve önceden işaretlenmiş IP'ler, davranış ne kadar insana benzese de puanı 0.3'ün altına çekebilir. Bu da erişim engellemesine veya zorluk gösterilmesine yol açar. Residential proxy'ler, IP itibarı bileşenini temiz tutarak meşru otomasyonun geçer puan almasını sağlar.

reCAPTCHA v3 için en iyi proxy tipi hangisidir?

reCAPTCHA v3 puanını yüksek tutmak için residential proxy'ler en uygun seçenektir. Gerçek ISP'lerden atanmış IP'ler, Google'ın IP itibarı modelinde temiz kabul edilir. Datacenter IP'leri genellikle düşük puan alır. Mobil proxy'ler de yüksek puan verebilir ancak maliyetleri daha yüksektir. ProxyHat residential ağında ülke ve şehir hedefleme ile puanı stabilize edebilirsiniz.

reCAPTCHA v3 uygulamasında bloklardan nasıl kaçınılır?

Bloklardan kaçınmak için: gerçek bir tarayıcı (headless olmayan veya stealth modunda) kullanın, fare hareketleri ve scroll ile insani etkileşim simüle edin, residential proxy ile temiz IP kullanın, action ve hostname değerlerini doğru eşleştirin, tek IP'de aşırı istek yapmaktan kaçının. Asla meşru test veya erişilebilirlik QA dışında kullanmayın; CFAA ve GDPR kapsamında izinsiz erişim suç teşkil edebilir.

Sık sorulan sorular

reCAPTCHA v3 puanlama nasıl çalışır?

reCAPTCHA v3, grecaptcha.execute() çağrısı başına 0.0 ile 1.0 arasında sürekli bir risk puanı döndürür. 1.0 insana en yakın, 0.0 ise bota en yakın anlamına gelir. Puan, fare/scroll/klavye zamanlaması, sayfa etkileşim telemetrisi, Google çerez grafiği, tarayıcı özellikleri ve IP itibarı gibi sinyallerin birleştirilmesiyle hesaplanır. Site tarafında siteverify ile doğrulanır ve site kendi eşiğini belirler.

reCAPTCHA v3 puanlaması proxy kullanıcıları için neden önemli?

Puanın önemli bir bileşeni IP itibarıdır. Datacenter ve önceden işaretlenmiş IP'ler, davranış ne kadar insana benzese de puanı 0.3'ün altına çekebilir. Bu da erişim engellemesine veya zorluk (challenge) gösterilmesine yol açar. Residential proxy'ler, IP itibarı bileşenini temiz tutarak meşru otomasyonun geçer puan almasını sağlar.

reCAPTCHA v3 için en iyi proxy tipi hangisidir?

reCAPTCHA v3 puanını yüksek tutmak için residential proxy'ler en uygun seçenektir. Gerçek ISP'lerden atanmış IP'ler, Google'ın IP itibarı modelinde temiz kabul edilir. Datacenter IP'leri genellikle düşük puan alır. Mobil proxy'ler de yüksek puan verebilir ancak maliyetleri daha yüksektir. ProxyHat residential ağında ülke ve şehir hedefleme ile puanı stabilize edebilirsiniz.

reCAPTCHA v3 uygulamasında bloklardan nasıl kaçınılır?

Bloklardan kaçınmak için: gerçek bir tarayıcı (headless olmayan veya stealth modunda) kullanın, fare hareketleri ve scroll ile insani etkileşim simüle edin, residential proxy ile temiz IP kullanın, action ve hostname değerlerini doğru eşleştirin, tek IP'de aşırı istek yapmaktan kaçının. Asla meşru test veya erişilebilirlik QA dışında kullanmayın; CFAA ve GDPR kapsamında izinsiz erişim suç teşkil edebilir.

Başlamaya hazır mısınız?

148+ ülkede 50M+ konut IP'sine AI destekli filtreleme ile erişin.

Fiyatlandırmayı GörüntüleKonut Proxy'leri
← Bloga Dön