GeeTest CAPTCHA v4
ve CapMonster Cloud

Captcha çözme, siteye entegrasyon ve test.

GeeTest CAPTCHA v4 çözümünün fiyatlandırması

CAPTCHA
Fiyat (USD)
$ 1.20
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 GeeTest CAPTCHA v4 kullanıldığını fark ederseniz, bir sonraki adım özelliklerini ve çalışma şeklini daha ayrıntılı incelemek olacaktır. Yine bu makalede, GeeTest CAPTCHA v4 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.

GeeTest CAPTCHA v4 nedir
GeeTest CAPTCHA v4 nedir
GeeTest CAPTCHA v4 (Adaptive CAPTCHA/Behavior Verification), v3 sürümüne kıyasla daha modern bir versiyondur ve siteleri kaynağa zarar verebilecek otomatik işlemlerden korumak için tasarlanmıştır. Sistem, site ziyaretçisinin davranışını ve cihaz özelliklerini izler ve buna göre uygun bir görev seçer: gerçek bir kullanıcı için doğrulama mümkün olduğunca basit olur — genellikle captcha widget’ına tek bir tıklama yeterlidir; otomasyon şüphesi olduğunda ise kullanıcının geçmesi gereken daha karmaşık bir görev gösterilir.
Background
GeeTest CAPTCHA v4 örnekleri
No CAPTCHA
No CAPTCHA
Kullanıcı doğrulaması, ağırlıklı olarak kullanıcının davranışı ve siteyle etkileşimi temel alınarak, açık görevler çözdürmeden yapılır.
Icon CAPTCHA
Icon CAPTCHA
Görüntüleri belirtilen sıraya göre seçme.
IconCrush CAPTCHA
IconCrush CAPTCHA
Öğelerin yerlerini değiştirerek aynı ikonlardan üç tanesini tek bir satırda hizalama ("match-3" tarzı bulmacalardaki gibi).
Slide CAPTCHA
Slide CAPTCHA
Bir yapbozu tamamlamak veya görseldeki öğeleri eşleştirmek için kullanılan bir kaydırıcı (slider).
Gobang CAPTCHA
Gobang CAPTCHA
Bir yapbozu tamamlamak veya görseldeki öğeleri eşleştirmek için kullanılan bir kaydırıcı (slider).

GeeTest CAPTCHA v4, CapMonster Cloud ile nasıl çözülür

GeeTest CAPTCHA v4 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 GeeTest CAPTCHA v4 çözme
CapMonster Cloud servisi, Python, JavaScript (Node.js) ve C# dillerinde rahatça çalışmak için hazır kütüphaneler sunar.
Python
JavaScript
C#
Çözüm, token ekleme ve form gönderme
Web sayfanızda captchayı uçtan uca çözmek için Node.js ile hazırlanmış bir örnek. Olası yaklaşımlar: HTML’yi ve captcha parametrelerini almak için HTTP istekleri kullanmak, yanıtı göndermek ve sonucu işlemek; veya otomasyon araçları (örneğin Playwright) ile sayfayı açmak, captchanın yüklenmesini beklemek, parametreleri göndermek (test için hem doğru hem de bilerek hatalı veriler gönderebilirsiniz), CapMonster Cloud istemcisi üzerinden çözümü almak, token’ı forma eklemek ve sonucu görmek.
python
// npm install playwright @zennolab_com/capmonstercloud-client

import { chromium } from "playwright";
import {
  CapMonsterCloudClientFactory,
  ClientOptions,
  GeeTestRequest
} from "@zennolab_com/capmonstercloud-client";

const CAPMONSTER_API_KEY = "YOUR_CAPMONSTER_API_KEY";

async function solveGeetestV4(pageUrl) {
  const browser = await chromium.launch({ headless: false });
  const context = await browser.newContext({ viewport: null });
  const page = await context.newPage();

  let detected = null;
  let solutionObj = null;

  // 1. /load yanıtını yakalayın (captcha_id, challenge vb. değerleri tespit edin)
  page.on("response", async (response) => {
    const url = response.url();
    if (!url.startsWith("https://gcaptcha4.geetest.com/load?")) return;

    const params = new URLSearchParams(url.split("?")[1] || "");
    const captchaId = params.get("captcha_id");
    const challenge = params.get("challenge");
    const captchaType = params.get("captcha_type");

    if (captchaId && challenge) {
      detected = { captchaId, challenge, captchaType };
      console.log("Detected GeeTest v4 load:", detected);
    }
  });

  // 2. Sayfayı yükleyin
  console.log("Opening page:", pageUrl);
  await page.goto(pageUrl, { waitUntil: "domcontentloaded" });

  // 3. /load isteğini yakalayana kadar bekleyin
  console.log("Waiting for GeeTest /load...");
  while (!detected) {
    await page.waitForTimeout(500);
  }

  // 4. Görevi (task) CapMonster Cloud’a gönderin
  console.log("Sending task to CapMonster...");
  const cmc = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: CAPMONSTER_API_KEY })
  );

  const task = new GeeTestRequest({
    websiteURL: pageUrl,
    gt: detected.captchaId,
    challenge: detected.challenge,
    version: "4",
    initParameters: {
      riskType: detected.captchaType || "slide"
    }
  });

  const solveRes = await cmc.Solve(task);
  const sol = solveRes.solution || solveRes;

  solutionObj = {
    captcha_id: sol.captcha_id || detected.captchaId,
    captcha_output: sol.captcha_output,
    lot_number: sol.lot_number,
    pass_token: sol.pass_token
  };

  console.log("Got solution from CapMonster:", solutionObj);

  // 5. Başarılı yanıt almak için /verify isteğine kendi değerlerinizi ekleyin
  await page.route("https://gcaptcha4.geetest.com/verify*", async (route) => {
    console.log("Intercepted /verify, injecting fake success...");
    const body = `geetest_${Date.now()}(${JSON.stringify({
      status: "success",
      data: {
        result: "success",
        seccode: {
          captcha_id: solutionObj.captcha_id,
          captcha_output: solutionObj.captcha_output,
          lot_number: solutionObj.lot_number,
          pass_token: solutionObj.pass_token
        }
      }
    })})`;

    await route.fulfill({
      status: 200,
      contentType: "application/javascript",
      body
    });
  });

  // 6. Kullanıcı eylemini taklit edin (örneğin captcha butonuna tıklamak)
  console.log("Waiting for captcha interaction...");
  await page.waitForTimeout(3000);

  // Doğrulama çağrısı örneği:
  try {
    await page.click('.geetest_btn'); // captcha butonu
    console.log("Clicked captcha button");
  } catch {
    console.log("Captcha button not found");
  }

  // Bazen verify() fonksiyonunu manuel olarak çağırmak gerekir:
  await page.evaluate(() => {
    if (window.initGeetest4 && typeof verify === "function") {
      verify();
    }
  });

  console.log("Waiting for verification request...");
  await page.waitForTimeout(3000);

  await browser.close();

  return { detected, solution: solutionObj };
}
(async () => {
  const url = "https://example.com"; // GeeTest v4 bulunan sayfanın adresi ile değiştirin
  const res = await solveGeetestV4(url);
  console.log("FINISHED:", res);
})();
GeeTest CAPTCHA v4 sitenize nasıl entegre edilir
Captchanın sitenizde nasıl çalıştığını, doğrulama mantığını, yeniden bağlama veya yeniden yapılandırma adımlarını net bir şekilde anlamak için bu bölümü incelemenizi öneririz. Burada koruma sisteminin entegrasyon süreci anlatılır — bu sayede tüm ayrıntıları hızlıca kavrayabilirsiniz.

1. GeeTest hesabınıza kaydolun veya giriş yapın

2. Captcha Dashboard bölümüne gidin ve Behavior Verification v4 seçeneğini seçin:

HowTo Connect image 1

3. Kontrol panelinde + Create application düğmesine tıklayın

4. APP/website name alanına captchayı kullanacağınız site veya uygulamanın adını, Address alanına captchanın kurulacağı ana alan adını (örneğin https://example.com), Industry alanına ise sitenin kategorisini (örneğin “E-commerce”, “Social Media” vb.) girin ve Confirm düğmesine tıklayın.

5. Yeni oluşturduğunuz uygulamanın yanında yer alan Add events düğmesine tıklayın. Event alanında captchayı kullanacağınız belirli senaryonun adını (örneğin login, register vb.), Device alanında platformu (örneğin Web/Wap), Business types alanında ise captchanın kullanılacağı iş senaryosu türünü (örneğin Sign-up / Sign-in — kayıt / giriş) seçin. Ardından Add düğmesine tıklayın.

6. Artık panelinizde oluşturulan captchaya ait ID (istemci ve sunucu tarafında kullanılır) ve Key (sunucuda doğrulama için kullanılır) değerleri görünecektir:

HowTo Connect image 2

7. İstemci tarafını entegre edin

Script’i ekleyin:

markup
<script src="https://static.geetest.com/v4/gt4.js"></script>

CAPTCHA’yı başlatın (initialize):

javascript
initGeetest4(
  { captchaId: "Your CaptchaId" },
  function (captcha) {
    captcha.appendTo("#captcha"); // Sayfadaki bir elemana yerleştiriyoruz
  }
);

Önemli:

  • CAPTCHA, sayfa yüklenirken başlatılmalıdır; aksi halde kullanıcı davranışı izlenemez.
  • Aynı sayfada birden fazla CAPTCHA kullanıyorsanız, her biri için ayrı ayrı initGeetest4 çağrısı yapın.
  • CAPTCHA’yı bir iframe içinde kullanıyorsanız, iframe’e sandbox="allow-scripts allow-popups" özelliğini ekleyin.

Kod örneğiKod örneği
arrow

8. Sunucu tarafını yapılandırın.

Kullanıcı, ön yüzde (frontend) CAPTCHA’yı geçtiğinde bir dizi parametre üretilir. Bu parametrelerin arka uca (backend) gönderilmesi ve ardından GeeTest’in ikincil doğrulama API’si üzerinden kontrol edilmesi gerekir; böylece doğrulamanın gerçekten başarılı olduğunu onaylayabilirsiniz.

İkincil doğrulama API’si:

javascript
url
http://gcaptcha4.geetest.com/validate

  • Metot: GET/POST
  • Content-Type: application/x-www-form-urlencoded
  • Yanıt formatı: JSON

İstek için temel parametreler

  • lot_number – doğrulamanın seri numarası
  • captcha_output – doğrulama verileri
  • pass_token – doğrulama token’ı
  • gen_time – doğrulamanın oluşturulma zamanı
  • captcha_id – CAPTCHA kimliği
  • sign_token – doğrulama için kullanılan imza

Başarılı yanıt örneğiBaşarılı yanıt örneği
arrow

PHP ile CAPTCHA doğrulama örneğiPHP ile CAPTCHA doğrulama örneği
arrow

Background
Olası hatalar ve hata ayıklama
Bug Icon
Geçersiz parametreler
Captcha hiç görüntülenmiyor veya invalid-captcha-id / invalid-challenge gibi hatalar döndürüyor. Sayfanıza karşılık gelen güncel captcha_id ve challenge değerlerini kullandığınızdan emin olun. Bu parametreler her /load isteğinde dinamik olarak oluşturulur.
Bug Icon
Çözüm zaman aşımı
Captcha çözüm sonucu zamanında alınamadı. Otomatik çözüm servisleri (örneğin CapMonster Cloud) kullanırken bekleme süresini (timeout) artırın ve API bağlantısının stabil olduğundan emin olun.
Bug Icon
Boş alanlar
captcha_output, pass_token veya lot_number sayfaya ya da doğrulama isteğine iletilmedi. Bu değerlerin formdaki gizli alanlara (hidden input) veya sunucunuza gönderilen isteğin gövdesine doğru şekilde eklendiğinden emin olun.
Bug Icon
Yanıt success=false
Token süresi dolmuş, yeniden kullanılmış veya sahte. Doğrulama sunucusuna giden tüm istek ve yanıtların log kaydını açın; böylece error_code veya error_msg gibi alanları takip edebilirsiniz.
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">Captcha anahtarını (gizli KEY) yalnızca sunucu tarafında saklayın</span>, hiçbir zaman istemci tarafına aktarmayın.
Doğrulama sırasında hata kodlarını (<span class="font-bold">error-codes</span> veya sunucu yanıtındaki ilgili alanlar) loglayın; böylece başarısız kontrollerin nedenlerini anlayabilirsiniz.
Lisans veya iç politika gerektiriyorsa, formun altına <span class="font-bold">Gizlilik Politikası</span> ve <span class="font-bold">GeeTest Kullanım Şartları</span> bağlantıları 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.

GeeTest CAPTCHA v4 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, GeeTest CAPTCHA v4 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

GeeTest CAPTCHA v4 hakkında sık sorulan sorular

CapMonster Cloud varsayılan olarak standart GeeTest endpoint'lerini kullanır. geetestApiServerSubdomain parametresini yalnızca hedef site widget'ı yüklemek için siteye özel bir API endpoint kullanıyorsa GeeTestTask istek gövdesine ekleyin. Bunu tespit etmek için sitenin ağ trafiğini inceleyin: başlatma istekleri api.geetest.com'dan farklı standart dışı bir hosta gidiyorsa, bu alt alan adı değerini parametreye geçirin.

riskType, solver'a hangi etkileşim türünün bekleneceğini söyler — slide, icon, gobang ve diğer challenge'a özel modlar. Standart bir slider challenge için createTask istek yükünde "riskType": "slide" ayarlayın. Örneğin:

POST https://api.capmonster.cloud/createTask

json
{
  "clientKey": "YOUR_CAPMONSTER_CLOUD_API_KEY",
  "task": {
    "type": "GeeTestTask",
    "websiteURL": "https://gt4.geetest.com/",
    "gt": "54088bb07d2df3c46b79f80300b0abbe",
    "version": 4,
    "initParameters": {
      "riskType": "slide"
    }
  }
}

Bu olmadan solver yanlış etkileşim türünü deneyebilir ve geçersiz token döndürebilir.

CapMonster Cloud Python, Node.js ve C# için resmi SDK'lar sunar. Her SDK görev oluşturma, CAPTCHA çözümünü yoklama, yeniden deneme mantığı ve zaman aşımı yönetimini dahili olarak halleder. Bu SDK'ları kullanmak API anahtarından çalışan bir solver'a geçmenin en hızlı yoludur.

Çözümden sonra CapMonster Cloud, sitenin /verify endpoint'ine iletmeniz gereken dört değer döndürür:

  • captcha_output — kodlanmış çözüm verileri
  • pass_token — doğrulama token'ı
  • lot_number — doğrulama seri numarası
  • gen_time — oluşturulan çözümün zaman damgası

Bunları çözüm görevi oluştururken kullandığınız captcha_id ile birleştirin ve başarılı yanıt almak için /verify'a bu değerleri iletin.

Sayfa yüklenirken ağ trafiğini yakalayarak GeeTest başlatma parametrelerini çıkarın. Playwright'ta sayfa yanıtlarını dinleyin ve gcaptcha4.geetest.com üzerindeki /load endpoint'ini filtreleyin. captcha_id ve risk_type çıkarmak için URL'nin sorgu dizesini ayrıştırın. Python'da minimal Playwright örneği:

python
async def on_request(request):
    url = request.url
    if "https://gcaptcha4.geetest.com/load?" in url:
        query = parse_qs(urlparse(url).query)
        captcha_id = query.get("captcha_id", [None])[0]
        risk_type = query.get("risk_type", [None])[0]

        if captcha_id and not result["version"]:
            result["version"] = "v4"
            result["data"] = {
                "captchaId": captcha_id,
                "riskType": risk_type
            }

            print("GeeTest v4 detected:")
            print(result["data"])

Çıkarılan captcha_id'yi gt parametresi olarak, riskType ve version ile birlikte doğrudan GeeTestTask yüküne geçirin. Tam API şeması için belgelere bakın.