reCAPTCHA v3
ve CapMonster Cloud

Captcha çözümü, siteye kurulum ve test işlemleri.

reCAPTCHA v3 çözümünün fiyatlandırması

CAPTCHA
Fiyat (USD)
$ 0.90
1000 jeton
Captcha veya başka bir koruma katmanı olan bir site devraldınız ama kaynak koda erişemiyor musunuz? O zaman hangi çözümün kurulu olduğunu, doğru ayarlanıp ayarlanmadığını ve nasıl test edileceğini bilmek istersiniz.

Bu makalede tüm önemli sorulara cevap vermeye çalıştık. Bir problemi çözmeye başlamanın ilk adımı, hangi koruma sisteminin kullanıldığını belirlemektir. Bunun için, görsel örneklerin ve neyle karşı karşıya olduğunuzu hızlıca anlamanıza yardımcı olabilecek temel işaretlerin yer aldığı popüler captcha ve anti-bot koruma sistemleri listesine başvurabilirsiniz.

Sitenizde reCAPTCHA v3 kullanıldığını fark ederseniz, bir sonraki adım özelliklerini ve çalışma şeklini daha ayrıntılı incelemek olacaktır. Yine bu makalede, reCAPTCHA v3 sisteminin entegrasyonuna ilişkin kılavuzu da bulabilir ve böylece sitenizde nasıl çalıştığını tamamen anlayabilirsiniz. Bu da yalnızca mevcut korumayı anlamanıza değil, aynı zamanda bakımını doğru şekilde planlamanıza da yardımcı olur.

Google reCAPTCHA v3 nedir
Google reCAPTCHA v3 nedir
reCAPTCHA v3, Google tarafından sunulan, “Ben robot değilim” kutusunu işaretlemeye gerek kalmadan gerçek kullanıcıları botlardan ayıran görünmez bir güvenlik sistemidir. Sayfada çalışan gizli bir script, ziyaretçinin davranışını analiz eder ve 0.0 ile 1.0 arasında bir güven puanı (score) üretir. Geliştirici, bu puan için bir eşik değeri belirler; puan bu değerin altına düştüğünde ek doğrulama istenebilir veya istek engellenebilir. Böylece kullanıcıdan ekstra bir işlem istemeden koruma sağlanmış olur.

CapMonster Cloud ile reCAPTCHA v3 nasıl çözülür

reCAPTCHA v3 içeren formları test ederken, captchanın düzgün çalıştığını ve doğru entegre edildiğini doğrulamanız gerekir.

Sitenize yerleştirilen captchayı manuel olarak test edebilirsiniz.

  • Form sayfasını açın ve captchanın görüntülendiğinden emin olun.
  • Çözmeden form göndermeyi deneyin — sunucu hata döndürmelidir.
  • Başarılı çözümlerden sonra form sorunsuz gönderilmelidir.

Otomatik çözüm için CapMonster Cloud gibi araçlar kullanabilirsiniz. Captcha parametrelerini alır, kendi sunucularında işler ve hazır bir token döndürür. Bu tokenı forma ekleyerek kullanıcı müdahalesi olmadan doğrulamayı geçebilirsiniz.

CapMonster Cloud API ile çalışma genellikle şu adımlardan oluşur:

Görev oluşturmaGörev oluşturma
arrow
API isteği göndermeAPI isteği gönderme
arrow
Sonucu almaSonucu alma
arrow
Token'ı sayfaya yerleştirmeToken'ı sayfaya yerleştirme
arrow
Hazır kütüphanelerle reCAPTCHA v3 çözme
CapMonster Cloud, Python, JavaScript (Node.js) ve C# dilleri için kolay entegrasyon sağlayan hazır kütüphaneler sunar.
Python
JavaScript
C#
Çözüm, token yerleştirme ve form gönderme
Bu bölümde web sayfanızdaki captcha’yı baştan sona çözme sürecine dair bir Node.js örneği gösterilmektedir. Olası yaklaşımlar: HTML’yi ve captcha parametrelerini almak için HTTP istekleri kullanmak, yanıtı gönderip sonucu işlemek; veya otomasyon araçları (örneğin Playwright) kullanarak sayfayı açmak, captcha’nın yüklenmesini beklemek, parametreleri göndermek (test için hem doğru hem de yanlış verilerle deneyebilirsiniz), sonucu CapMonster Cloud istemcisi üzerinden almak, token’ı forma yerleştirmek ve sonucu gözlemlemek.
const { chromium } = require('playwright');
const { 
  CapMonsterCloudClientFactory, 
  ClientOptions, 
  RecaptchaV3ProxylessRequest 
} = require('@zennolab_com/capmonstercloud-client');

(async () => {
  const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta'; // Captcha içeren sayfanızın URL’si
  const SITE_KEY = '6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob';
  const API_KEY = 'your_capmonster_cloud_api_key'; // CapMonster Cloud API anahtarınızı girin

  // CapMonster istemcisi oluşturma
  const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));

  // Tarayıcıyı başlatma
  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage();
  await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });

  // reCAPTCHA v3 görevinin yapılandırılması
  const recaptchaRequest = new RecaptchaV3ProxylessRequest({
    websiteURL: TARGET_URL,
    websiteKey: SITE_KEY,
    minScore: 0.6,
    pageAction: 'myverify', // Sayfadaki action ile eşleşmesini sağlama
  });

  // Captcha’yı çözme
  const solution = await cmcClient.Solve(recaptchaRequest);
  const token = solution.solution?.gRecaptchaResponse;

  if (!token) {
    console.error('Token boş, sitekey ve URL’yi kontrol edin');
    await browser.close();
    return;
  }

  console.log('Token alındı:', token);

  // Token’ı gizli alana yerleştirip butona tıklamayı taklit etme 
  // Gerekli seçicilerle değiştirin
  await page.evaluate((t) => {
    const input = document.querySelector('#v3_token');
    if (input) input.value = t;

    const form = document.querySelector('#v3_form');
    if (form) form.submit();
  }, token);

  console.log('Token yerleştirildi ve form gönderildi');

  await page.waitForTimeout(5000);
  await browser.close();
})();
reCAPTCHA v3’ü sitenize nasıl bağlarsınız
Sitenizde captcha’nın nasıl çalıştığını, doğrulama mantığını anlamak, ayrıca gerektiğinde tekrar bağlamak veya yeniden yapılandırmak için bu bölümü incelemenizi öneririz. Burada koruma kurulum süreci adım adım açıklanmaktadır; böylece tüm ayrıntıları hızlıca kavrayabilirsiniz.

1. reCAPTCHA yönetim paneli sayfasına gidin.

2. Yeni bir site kaydedin ve captcha türü olarak reCAPTCHA v3’ü seçin

HowTo Connect image 1

3. İki anahtar alın:

  • Site key — ortak anahtar (frontend tarafında kullanılır);
  • Secret key — gizli anahtar (sunucu tarafında doğrulama için kullanılır)

HowTo Connect image 2

Ayarlar bölümünü açarak, örneğin reCAPTCHA’nın kullanılabileceği alan adlarını belirleyebilir veya siteyle ilgili sorunlar ya da şüpheli trafik artışı için bildirimler yapılandırabilirsiniz.

4. İstemci tarafı için kod örnekleri

reCAPTCHA v3 kullanmanın en basit yolu, JavaScript API’sini eklemek ve butona gerekli öznitelikleri (attribute) eklemektir.

API’yi ekleme:

<script src="https://www.google.com/recaptcha/api.js"></script>

Form için geri çağırma (callback) fonksiyonu:

<script>
  function onSubmit(token) {
    document.getElementById("form").submit();
  }
</script>

reCAPTCHA özniteliklerine sahip buton:

<button class="g-recaptcha" 
        data-sitekey="reCAPTCHA_sitekey" 
        data-callback='onSubmit' 
        data-action='submit'>Submit</button>

Tam kontrol için render parametresiyle birlikte grecaptcha.execute kullanın:

Anahtar ile API’yi ekleme:

<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>

Programatik çağrı:

<script>
  function onClick(e) {
    e.preventDefault();
    grecaptcha.ready(function() {
      grecaptcha.execute('reCAPTCHA_sitekey', {action: 'submit'}).then(function(token) {
          // Doğrulama için token’ı sunucuya gönderin
      });
    });
  }
</script>

Token’ı, doğrulama için hemen sunucuya göndermeniz gerekir.

Önemli notlar:

  • Token’ın geçerlilik süresi: reCAPTCHA v3 tarafından döndürülen token 2 dakika boyunca geçerlidir. Bu süre içinde token’ı sunucuya gönderdiğinizden emin olun.
  • Sunucu tarafında doğrulama: Sunucu token’ı aldıktan sonra https://www.google.com/recaptcha/api/siteverify adresine şu parametrelerle bir POST isteği göndermelidir:
    – secret: gizli anahtarınız
    – response: istemciden alınan token
    – remoteip (zorunlu değil): kullanıcının IP adresi
  • Google sunucusu, doğrulama sonucuna ilişkin bilgileri içeren bir JSON yanıtı döndürür.

5. Ardından sunucu tarafında yanıtı doğrulayın

PHP örneğiPHP örneği
arrow

Notlar:

  • İstemci tarafında token’ın recaptcha-token adlı gizli bir form alanı üzerinden sunucuya gönderildiğinden emin olun:
    • <input type="hidden" name="recaptcha-token" id="recaptcha-token">

      • score eşiğini, istediğiniz sıkılık seviyesine göre ayarlayabilirsiniz (örneğin 0.3–0.7).
      • action === 'submit' kontrolü ek güvenlik sağlar ve token’ın sayfadaki belirli işlem için üretildiğinden emin olmanıza yardımcı olur.
Background
Olası hatalar ve hata ayıklama
Bug Icon
Hatalı site veya anahtar
Captcha yüklenmiyor veya invalid-input-secret hatası dönüyor.
Bug Icon
Çözüm zaman aşımı
Sunucu yanıtı beklerken zaman aşımına uğradı, bekleme süresini artırın.
Bug Icon
Boş token
Sonucun sayfaya iletilmesi sırasında bir hata oluştu.
Bug Icon
Yanıt success=false
Token süresi dolmuş, yeniden kullanılmış veya sahte olabilir. Teşhis için istek loglarını etkinleştirin ve Google yanıtındaki error-codes alanını inceleyin.
Bug Icon
Düşük score (örneğin <0.5)
Google kullanıcıya olan güveni score üzerinden değerlendirdiği için, success=true olsa bile düşük skor reddedilmesine yol açabilir.
Bug Icon
action alanını kontrol edin
Token’ın sayfadaki belirli bir işlem için üretildiğinden emin olmak için
Korumanın dayanıklılığını test etme
Entegrasyondan sonra sistemin gerçekten otomatik işlemleri engellediğinden emin olun.
Güvenlik ve optimizasyon önerileri
<span class="font-bold">Secret Key</span> yalnızca sunucu tarafında saklayın, asla istemci tarafına aktarmayın.
Reddetmelerin nedenlerini anlamak için hata kodlarını (<span class="font-bold">error-codes</span>) ve <span class="font-bold">score</span> değerini loglayın.
Token’ın sayfadaki doğru işlem için üretildiğinden emin olmak için Google yanıtındaki <span class="font-bold">action</span> alanını kontrol edin.
Lisans gereği, formun altına <span class="font-bold">Gizlilik Politikası</span> ve <span class="font-bold">Google Kullanım Şartları</span> bağlantılarını ekleyin.
Sonuç

Kodu üzerinde erişiminiz olmayan, ancak üzerinde zaten bir captcha veya başka bir koruma sistemi kurulmuş bir site devraldıysanız, sorun değil! Hangi teknolojinin kullanıldığını tespit etmek oldukça kolaydır. Çalışmanın düzgün olup olmadığını kontrol etmek için ise, izole bir test ortamında CapMonster Cloud tanıma servisinden yararlanarak, jeton işleme mekanizmasının ve doğrulama mantığının doğru şekilde çalıştığından emin olabilirsiniz.

reCAPTCHA v3 söz konusu olduğunda, sistemi tanımlamak, davranışını incelemek ve korumanın düzgün çalıştığını doğrulamak yeterlidir. Bu yazıda, reCAPTCHA v3 nasıl tespit edilir ve entegrasyonu ya da yeniden yapılandırılması için talimatların nerede bulunabileceği gösterdik; böylece korumayı güvenle sürdürebilir ve çalışmasını kontrol altında tutabilirsiniz.

Conclusion

reCAPTCHA v3 hakkında sık sorulan sorular

CapMonster Cloud, Python, JavaScript (Node.js) ve C# için resmi istemci kütüphaneleri sağlar. Bu kütüphaneler reCAPTCHA v3 entegrasyonunu basitleştirir ve HTTP isteklerini manuel olarak uygulama ihtiyacını ortadan kaldırır.

Örneğin Node.js'te @zennolab_com/capmonstercloud-client paketini kullanabilirsiniz; bu paket birkaç satır kodla token almanızı ve forma enjekte etmenizi sağlar.

Diliniz için özel bir kütüphane yoksa evrensel REST API'yi (createTask / getTaskResult) kullanın. curl, requests, axios ve diğerleri dahil herhangi bir HTTP istemcisiyle çalışır.

İsteğin tam yapısı API belgelerinde mevcuttur.

minScore parametresi 0.1 ile 0.9 arasında değerler kabul eder ve CapMonster Cloud'a döndürülen tokenın taşıması gereken minimum güven puanını bildirir. 0.7 makul bir başlangıç noktasıdır. Çok yüksek bir değer (ör. 0.9) çözüm hataları olasılığını artırır; çok düşük bir değer sunucu tarafı eşiğinizin zaten reddetmesi gereken puanlı tokenlar döndürebilir. Değeri test ortamındaki gerçek red oranlarına göre ayarlayın.

reCAPTCHA v3'ten alınan bir token yaklaşık 2 dakika geçerlidir. Otomasyon hattınız tokenı bu süre içinde sunucuya göndermelidir; süre dolduktan sonra Google'ın siteverify uç noktası success: false döndürür. Çözüm adımını form gönderimine mümkün olduğunca yakın tutun ve istekler arasında tokenları önbelleğe almayın.

reCAPTCHA v3 tokenı enjekte etmek için gizli yanıt alanını bulun (genellikle g-recaptcha-response ID'li textarea veya input) ve CAPTCHA çözüm hizmetinden aldığınız tokenı ekleyin. Üç otomasyon çerçevesinde nasıl yapılacağı aşağıdadır.

Playwright / Puppeteer (Node.js)

const token = "YOUR_TOKEN";
await page.evaluate((t) => {
  document.getElementById('g-recaptcha-response').value = t;
}, token);
await page.click('#submit-btn');

Selenium (Python)

token = "YOUR_TOKEN"
driver.execute_script(f"document.getElementById('g-recaptcha-response').value = '{token}';")
driver.find_element("id", "submit-btn").click()

Bazı siteler tokenı doğrulamak için callback fonksiyonları kullanır. Form gönderilmezse konsoldan (___grecaptcha_cfg.clients) fonksiyon adını bulun ve manuel olarak çağırın:

// Example of calling a callback in Playwright/Puppeteer
await page.evaluate((t) => { window.onSuccessCallback(t); }, token);

Google'dan gelen success: true yanıtı yalnızca tokenın geçerli olduğu anlamına gelir. Token puanı yapılandırılmış eşiğinizin altındaysa backend isteği yine de reddedebilir.

Başka bir yaygın sorun action uyuşmazlığıdır. Token, görev oluşturulurken kullanılan action değeriyle doğrulanmalıdır.

Sorunu teşhis etmek için:

  • siteverify yanıtındaki score alanını kontrol edin;
  • action değerinin eşleştiğini doğrulayın;
  • success false olduğunda error-codes değerlerini inceleyin.

success true ise error-codes dizisi genellikle boştur; bu yüzden asıl kontrol edilmesi gereken alanlar score ve action'dır.