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 v2 Enterprise 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 v2 Enterprise 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.
reCAPTCHA v2 Enterprise 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.
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:
Çözüm isteğine şu parametreleri ekleyin:
type - RecaptchaV2EnterpriseTask;
websiteURL - captcha’nın bulunduğu sayfa adresi;
websiteKey - sayfada gösterilen sitekey;
enterprisePayload - reCAPTCHA Enterprise widget’ınız grecaptcha.enterprise.render çağrısına sitekey ile birlikte ek bir s alanı gönderiyorsa bu değeri iletin;
pageAction - widget’ın Google’a gönderdiği action değeri (varsayılan: verify).
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV2EnterpriseTask",
"websiteURL": "https://mydomain.com/page-with-recaptcha-enterprise",
"websiteKey": "6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd",
"pageAction": "verify",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN"
}
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AFcWeA66ZARdA5te7acD9vSwWE2hEQ2-B2aqFxm455iMA-g-Jis..."
}
}
import { chromium } from 'playwright';
import { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2EnterpriseRequest } from '@zennolab_com/capmonstercloud-client';
(async () => {
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
// 2. Captcha sayfasını açın
await page.goto('https://example.com');
// 3. CapMonster Cloud istemcisini oluşturun
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: '<your_capmonster_cloud_api_key>' })
);
// 4. Çözüm isteğini yapılandırın
const recaptchaRequest = new RecaptchaV2EnterpriseRequest({
websiteURL: page.url(),
websiteKey: '6Lf76sUnAAAAAIKLuWNyegRsFUfmI-3Lex3xT5N'
// enterprisePayload: { s: 'SOME_ADDITIONAL_TOKEN' } // Opsiyonel Enterprise parametresi
});
// 5. Captchayı CapMonster ile çözün
const solution = await cmcClient.Solve(recaptchaRequest);
const token = solution.solution.gRecaptchaResponse;
console.log('Captcha belirteci:', token);
// 6. Token’ı gizli alana yerleştirin
await page.evaluate((t) => {
const el = document.getElementById('g-recaptcha-response');
if (el) el.value = t;
}, token);
// 7. (Opsiyonel) Formu gönderin — uygun seçiciyi kullanın
await page.click('button[data-action="submit"]');
await page.waitForTimeout(5000);
await browser.close();
})();reCAPTCHA Enterprise, Google Cloud üzerinde çalıştığı için önce konsolda bir proje oluşturmanız gerekir:
1. Google Cloud Console sayfasına gidin.
2. Üst menüden mevcut bir projeyi seçin veya New project seçeneğine tıklayın.
3. Bir proje adı girin, kuruluşunuzu belirtin ve oluşturmayı onaylayın.

4. Şu API sayfasını açın: reCAPTCHA Enterprise API ve Enable düğmesine tıklayın.
5. Konsolda Create key sayfasına gidin ve Create Key tıklayın.

6. Temel ayarları yapılandırın:
Ardından Additional Settings bölümünü açın, Will you use challenges? seçeneğini etkinleştirin ve Checkbox Challenge’ı açın.

7. Create butonuna tıklayın. Koruma özelliğini etkinleştirmek için sitenize eklemeniz gereken bir anahtar alacaksınız.

8. Script’i sayfanıza ekleyin.
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
</head>
<body>
<form action="" method="POST">
<div class="g-recaptcha" data-sitekey="YOUR_SITEKEY" data-action="LOGIN"></div>
<br/>
<input type="submit" value="Submit">
</form>
</body>
</html>9. Yanıtı sunucu tarafında doğrulayın.
Token (g-recaptcha-response) backend’e gönderilir.
2 dakika boyunca geçerlidir, bu yüzden alır almaz doğrulayın! API ile güvenli iletişim için resmi Google Cloud kütüphanelerini kullanmanızı öneririz:
<?php
require 'vendor/autoload.php';
// Google Cloud kütüphanelerini Composer ile yükleyin
use Google/Cloud/RecaptchaEnterprise/V1/RecaptchaEnterpriseServiceClient;
use Google/Cloud/RecaptchaEnterprise/V1/Event;
use Google/Cloud/RecaptchaEnterprise/V1/Assessment;
use Google/Cloud/RecaptchaEnterprise/V1/CreateAssessmentRequest;
use Google/Cloud/RecaptchaEnterprise/V1/TokenProperties/InvalidReason;
/**
* reCAPTCHA Enterprise token’ını doğrulayın ve risk skorunu alın.
*
* @param string $recaptchaKey Site/uygulamanız için reCAPTCHA anahtarınız
* @param string $token İstemciden alınan token
* @param string $projectId Google Cloud proje kimliği (project ID)
* @param string $action Token ile ilişkilendirilmiş eylem adı (action name)
*/
function create_assessment(string $recaptchaKey, string $token, string $projectId, string $action): void {
$client = new RecaptchaEnterpriseServiceClient();
$projectName = $client->projectName($projectId);
// Assessment (değerlendirme) olayını oluşturun
$event = (new Event())->setSiteKey($recaptchaKey)->setToken($token);
$assessment = (new Assessment())->setEvent($event);
$request = (new CreateAssessmentRequest())->setParent($projectName)->setAssessment($assessment);
try {
$response = $client->createAssessment($request);
if (!$response->getTokenProperties()->getValid()) {
echo 'Token geçersiz: ' . InvalidReason::name($response->getTokenProperties()->getInvalidReason());
return;
}
if ($response->getTokenProperties()->getAction() === $action) {
echo 'Risk skoru: ' . $response->getRiskAnalysis()->getScore();
} else {
echo 'reCAPTCHA etiketindeki action beklenen değerle eşleşmiyor';
}
} catch (Exception $e) {
echo 'reCAPTCHA kontrol edilirken hata oluştu: ' . $e->getMessage();
}
}
// Fonksiyonu bu değişkenlerle birlikte çağırın
create_assessment(
'YOUR_SITE_KEY',
'YOUR_USER_RESPONSE_TOKEN',
'YOUR_PROJECT_ID',
'YOUR_RECAPTCHA_ACTION'
);
?>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 v2 Enterprise 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 v2 Enterprise 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.