W tym artykule staraliśmy się odpowiedzieć na wszystkie najważniejsze pytania. Pierwszym krokiem w rozwiązywaniu problemu jest ustalenie, jaki system ochrony jest używany. W tym celu możesz skorzystać z listy popularnych captcha i systemów ochrony antybotowej, gdzie znajdziesz przykłady graficzne oraz kluczowe cechy, które pomogą szybko rozpoznać, z czym masz do czynienia.
Jeśli okaże się, że na Twojej stronie używany jest reCAPTCHA v2 Enterprise, kolejnym krokiem będzie dokładniejsze poznanie jej właściwości i sposobu działania. W tym artykule możesz również zapoznać się z instrukcją integracji systemu reCAPTCHA v2 Enterprise, aby w pełni zrozumieć, jak funkcjonuje on na Twojej stronie. Dzięki temu nie tylko lepiej poznasz obecną ochronę, ale też świadomie zaplanujesz jej dalsze utrzymanie.
Podczas testowania formularzy z reCAPTCHA v2 Enterprise często trzeba zweryfikować, czy captcha jest poprawnie zintegrowana i działa.
Możesz ręcznie sprawdzić captchę na swojej stronie.
Do automatycznego rozwiązywania wykorzystaj narzędzia takie jak CapMonster Cloud, które przyjmują parametry captcha, przetwarzają je na serwerach i zwracają gotowy token. Wstaw go do formularza, aby przejść weryfikację bez udziału użytkownika.
Praca z CapMonster Cloud poprzez API zazwyczaj obejmuje następujące kroki:
W żądaniu podaj:
type - RecaptchaV2EnterpriseTask;
websiteURL - adres strony z captchą;
websiteKey - sitekey widoczny na stronie;
enterprisePayload - przekaż go, jeśli widget reCAPTCHA Enterprise wysyła dodatkowe pole s w strukturze przekazywanej do grecaptcha.enterprise.render wraz z sitekey;
pageAction - wartość action wysyłana do Google (domyślnie 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. Otwórz stronę z captchą
await page.goto('https://example.com');
// 3. Utwórz klienta CapMonster Cloud
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: '<your_capmonster_cloud_api_key>' })
);
// 4. Skonfiguruj zapytanie rozwiązujące
const recaptchaRequest = new RecaptchaV2EnterpriseRequest({
websiteURL: page.url(),
websiteKey: '6Lf76sUnAAAAAIKLuWNyegRsFUfmI-3Lex3xT5N'
// enterprisePayload: { s: 'SOME_ADDITIONAL_TOKEN' } // Opcjonalny parametr enterprise
});
// 5. Rozwiąż captchę przez CapMonster
const solution = await cmcClient.Solve(recaptchaRequest);
const token = solution.solution.gRecaptchaResponse;
console.log('Token captchy:', token);
// 6. Wstaw token do ukrytego pola
await page.evaluate((t) => {
const el = document.getElementById('g-recaptcha-response');
if (el) el.value = t;
}, token);
// 7. (Opcjonalnie) wyślij formularz — dopasuj selektor
await page.click('button[data-action="submit"]');
await page.waitForTimeout(5000);
await browser.close();
})();Ponieważ reCAPTCHA Enterprise działa w Google Cloud, najpierw musisz utworzyć projekt w konsoli:
1. Przejdź do Google Cloud Console.
2. W górnym menu wybierz istniejący projekt lub kliknij Nowy projekt.
3. Wprowadź nazwę projektu, określ swoją organizację i potwierdź utworzenie.

4. Otwórz stronę API: reCAPTCHA Enterprise API i kliknij Włącz.
5. W konsoli przejdź do Utwórz klucz i kliknij Utwórz klucz.

6. Skonfiguruj podstawowe ustawienia:
Następnie otwórz Dodatkowe ustawienia, włącz opcję Czy będziesz używać wyzwań (challenges)? i aktywuj Checkbox Challenge.

7. Kliknij Utwórz. Otrzymasz klucz, który należy dodać do witryny, aby aktywować ochronę.

8. Dodaj skrypt do swojej strony.
<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. Zweryfikuj odpowiedź po stronie serwera.
Token (g-recaptcha-response) jest wysyłany do backendu.
Jest ważny przez 2 minuty, więc zweryfikuj go jak najszybciej po odebraniu! Do bezpiecznej komunikacji z API zalecamy oficjalne biblioteki Google Cloud:
<?php
require 'vendor/autoload.php';
// Zainstaluj biblioteki Google Cloud za pomocą Composer
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;
/**
* Zwaliduj token reCAPTCHA Enterprise i pobierz wynik ryzyka.
*
* @param string $recaptchaKey Klucz reCAPTCHA Twojej witryny/aplikacji
* @param string $token Token otrzymany od klienta
* @param string $projectId ID projektu Google Cloud
* @param string $action Nazwa akcji powiązana z tokenem
*/
function create_assessment(string $recaptchaKey, string $token, string $projectId, string $action): void {
$client = new RecaptchaEnterpriseServiceClient();
$projectName = $client->projectName($projectId);
// Utwórz zdarzenie oceny (assessment)
$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 jest nieprawidłowy: ' . InvalidReason::name($response->getTokenProperties()->getInvalidReason());
return;
}
if ($response->getTokenProperties()->getAction() === $action) {
echo 'Wynik ryzyka: ' . $response->getRiskAnalysis()->getScore();
} else {
echo 'Akcja w tagu reCAPTCHA nie zgadza się z oczekiwaną wartością';
}
} catch (Exception $e) {
echo 'Błąd podczas sprawdzania reCAPTCHA: ' . $e->getMessage();
}
}
// Wywołaj funkcję z podanymi zmiennymi
create_assessment(
'YOUR_SITE_KEY',
'YOUR_USER_RESPONSE_TOKEN',
'YOUR_PROJECT_ID',
'YOUR_RECAPTCHA_ACTION'
);
?>Jeśli przejąłeś stronę internetową, na której jest już zainstalowany captcha lub inny system zabezpieczeń, a jednocześnie nie masz dostępu do kodu — to nic strasznego! Dość łatwo jest ustalić, jaka dokładnie technologia jest używana. Aby sprawdzić poprawność działania, możesz skorzystać z usługi rozpoznawania CapMonster Cloud w odizolowanym środowisku testowym, żeby upewnić się, że mechanizm przetwarzania tokenów i logika weryfikacji działają prawidłowo.
W przypadku reCAPTCHA v2 Enterprise wystarczy rozpoznać system, przeanalizować jego zachowanie i upewnić się, że zabezpieczenie działa poprawnie. W artykule pokazaliśmy, jak zidentyfikować reCAPTCHA v2 Enterprise oraz gdzie znaleźć instrukcje dotyczące jego podłączenia lub ponownej konfiguracji, aby móc pewnie utrzymywać ochronę i kontrolować jej działanie.