reCAPTCHA v2
i CapMonster Cloud

Rozwiązywanie captcha, wdrożenie na stronie i testy end-to-end w jednym miejscu.

Cennik rozwiązania reCAPTCHA V2

CAPTCHA
Cena (USD)
$ 0.60
1000 tokenów
Odziedziczyłeś stronę z już wdrożoną captchą lub ochroną, ale bez dostępu do kodu źródłowego? Naturalnie pojawia się pytanie, jaka technologia jest używana, czy działa poprawnie i jak ją przetestować.

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, 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, 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.

Czym jest Google reCAPTCHA v2
Czym jest Google reCAPTCHA v2
reCAPTCHA v2 to system ochrony Google zaprojektowany, by blokować spam i inne automatyczne działania mogące zaszkodzić stronie. Pomaga odróżnić prawdziwych użytkowników od botów, dbając o bezpieczeństwo i stabilność witryny.
Background
Przykłady reCAPTCHA V2
reCAPTCHA v2
reCAPTCHA v2
Klasyczna captcha z polem wyboru, w którym użytkownik potwierdza, że jest człowiekiem. Czasem pojawia się dodatkowe okno z zadaniem, np. wyborem określonych obrazów.
reCAPTCHA v2 Invisible
reCAPTCHA v2 Invisible
Niewidoczna wersja captcha, która weryfikuje automatycznie – bez udziału użytkownika i bez klikania w checkbox.
reCAPTCHA v2 Enterprise
reCAPTCHA v2 Enterprise
Wersja korporacyjna z dodatkowymi funkcjami bezpieczeństwa.

Jak rozwiązać reCAPTCHA v2 za pomocą CapMonster Cloud

Podczas testowania formularzy z reCAPTCHA V2 często trzeba zweryfikować, czy captcha jest poprawnie zintegrowana i działa.

Możesz ręcznie sprawdzić captchę na swojej stronie.

  • Otwórz stronę formularza i upewnij się, że captcha się wyświetla.
  • Spróbuj wysłać formularz bez rozwiązania — serwer powinien zwrócić błąd.
  • Po poprawnym rozwiązaniu formularz musi wysłać się bez problemów.

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:

Tworzenie zadaniaTworzenie zadania
arrow
Wysyłanie żądania APIWysyłanie żądania API
arrow
Odebranie wynikuOdebranie wyniku
arrow
Umieszczenie tokenu na stronieUmieszczenie tokenu na stronie
arrow
Rozwiązywanie reCAPTCHA v2 z gotowymi bibliotekami
CapMonster Cloud oferuje biblioteki SDK dla Pythona, JavaScriptu (Node.js) oraz C#.
Python
JavaScript
C#
Rozwiązanie, wstawienie tokenu i wysłanie formularza
Przykład w Node.js obejmujący cały proces na Twojej stronie. Możesz pobrać HTML i parametry captcha przez HTTP, wysłać odpowiedź i obsłużyć wynik albo skorzystać z narzędzi automatyzujących (np. Playwright) – otworzyć stronę, poczekać na captchę, przekazać parametry (poprawne lub testowe), odebrać wynik przez klienta CapMonster Cloud, wstawić token do formularza i obserwować rezultat.
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium


const { chromium } = require('playwright');
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2Request } = require('@zennolab_com/capmonstercloud-client');

(async () => {
  const browser = await chromium.launch({ headless: false });
  const page = await browser.newPage();

  const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=high';
  const WEBSITE_KEY = '6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd';
  const CMC_API_KEY = 'your_capmonster_cloud_api_key';

  const cmc = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: CMC_API_KEY }));

  await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });

  // Rozwiązywanie captcha
  const solution = await cmc.Solve(new RecaptchaV2Request({ websiteURL: TARGET_URL, websiteKey: WEBSITE_KEY }));
  const token = solution.solution.gRecaptchaResponse;

  // Wstaw token i wyślij formularz (zamień na potrzebny selektor)
  await page.evaluate((t) => {
    const ta = document.querySelector('textarea#g-recaptcha-response');
    if (ta) ta.value = t;
    document.querySelector('form.formular')?.submit();
  }, token);

  console.log('Captcha rozwiązana, formularz wysłany!');
})();
Jak podłączyć reCAPTCHA v2 do swojej strony
Aby zrozumieć, jak captcha działa na twojej stronie, poznać logikę walidacji i w razie potrzeby ponownie ją skonfigurować, zapoznaj się z tą sekcją. Znajdziesz tu opis całego procesu konfiguracji ochrony.

1. Przejdź do strony konsoli administracyjnej reCAPTCHA.

2. Zarejestruj nową stronę.

Wybierz typ captcha — reCAPTCHA v2 (checkbox z zadaniami albo wersja niewidoczna).

HowTo Connect image 1

3. Pobierz dwa klucze:

  • Site key — klucz publiczny używany na froncie;
  • Secret key — klucz prywatny używany na serwerze.

HowTo Connect image 2

W ustawieniach możesz wskazać domeny, które mogą korzystać z reCAPTCHA, lub wybrać poziom bezpieczeństwa — od podstawowego do maksymalnego.

4. Przykład kodu po stronie klienta. Formularz HTML z reCAPTCHA v2 (można wkleić do kodu strony):

Formularz HTML z reCAPTCHA v2Formularz HTML z reCAPTCHA v2
arrow

5. Zweryfikuj odpowiedź po stronie serwera.

Przykład w PHPPrzykład w PHP
arrow
Background
Możliwe błędy i debugowanie
Bug Icon
Nieprawidłowa strona lub klucz
Captcha nie ładuje się albo zwraca invalid-input-secret.
Bug Icon
Przekroczony czas rozwiązania
Serwer nie doczekał się odpowiedzi. Wydłuż czas oczekiwania.
Bug Icon
Pusty token
Błąd podczas przekazywania wyniku na stronę.
Bug Icon
Response success=false
Token wygasł, został ponownie użyty lub sfałszowany. Włącz logowanie żądań i sprawdzaj pole error-codes w odpowiedzi Google.
Sprawdzenie odporności ochrony
Po integracji upewnij się, że system faktycznie chroni stronę przed automatycznymi działaniami.
Rekomendacje dotyczące bezpieczeństwa i optymalizacji
Przechowuj <span class="font-bold">Secret Key</span> wyłącznie na serwerze, nie przekazuj go do części klienckiej.
Loguj kody błędów <span class="font-bold">(error-codes)</span>, aby rozumieć, dlaczego konkretne weryfikacje nie powiodły się.
Dodaj u dołu formularza linki do <span class="font-bold">Polityki prywatności</span> i <span class="font-bold">Warunków korzystania z usługi Google</span>, jak wymaga tego licencja.
Wnioski

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 wystarczy rozpoznać system, przeanalizować jego zachowanie i upewnić się, że zabezpieczenie działa poprawnie. W artykule pokazaliśmy, jak zidentyfikować reCAPTCHA V2 oraz gdzie znaleźć instrukcje dotyczące jego podłączenia lub ponownej konfiguracji, aby móc pewnie utrzymywać ochronę i kontrolować jej działanie.

Conclusion

Najczęściej zadawane pytania o reCAPTCHA v2

Aby wysłać żądanie rozwiązania, wykonaj POST z JSON-em na https://api.capmonster.cloud/createTask:

{
  "clientKey": "API_KEY",
  "task": {
    "type": "RecaptchaV2Task",
    "websiteURL": "[target_page_URL_with_reCAPTCHA]",
    "websiteKey": "[reCAPTCHA_website_key]"
  }
}
  • clientKey — klucz API z Twojego konta CapMonster Cloud
  • task.type: ustaw RecaptchaV2Task
  • task.websiteURL: URL strony, na której pojawia się captcha
  • task.websiteKey: publiczny sitekey osadzony w HTML strony

W kolejnych krokach zapoznaj się z dokumentacją rozwiązywania reCAPTCHA.

Wyślij zadanie żądaniem na https://api.capmonster.cloud/createTask z parametrami opisanymi w poprzednim pytaniu.

Odpytuj https://api.capmonster.cloud/getTaskResult z clientKey i taskId (zwracanym w odpowiedzi createTask).

Gdy pole status przyjmie wartość ready, odpowiedź zawiera ciąg gRecaptchaResponse — to Twój rozwiązany token.

Przekaż token na docelową stronę jedną z poniższych metod, w zależności od typu reCAPTCHA v2 i architektury witryny:

  • Standardowa injekcja DOM: dla typowych integracji z checkboxem wstrzyknij token do ukrytego pola tekstowego (np. document.getElementById("g-recaptcha-response").innerHTML = token;) za pomocą metody page.evaluate() w Playwright (lub odpowiednika w Puppeteer/Selenium). Następnie programowo wywołaj form.submit() lub kliknij przycisk wysyłania.
  • Callback JavaScript (niewidoczna reCAPTCHA): jeśli strona używa niewidocznej captchy z callbackiem, zidentyfikuj nazwę funkcji w atrybucie data-callback i wykonaj ją w skrypcie automatyzacji, przekazując token jako argument (np. onVerifyCallback("TOKEN_STRING")).
  • Bezpośrednie żądanie HTTP: aby pominąć renderowanie w przeglądarce, przechwyć natywne żądanie wysyłki formularza i prześlij token bezpośrednio do backendu jako część danych formularza (np. g-recaptcha-response=TOKEN_STRING) przez klienta HTTP.

Serwer docelowy pobiera token z Twojego żądania i weryfikuje go przez endpoint siteverify Google.

CapMonster Cloud obsługuje oba tryby tym samym wywołaniem API. W trybie niewidocznym dodaj parametr isInvisible: true do żądania createTask. Aby poprawnie potwierdzić rozwiązanie reCAPTCHA, ustal metodę, którą witryna używa do przesyłania tokenu. Metody te opisano w poprzednim pytaniu.

Najczęstszą przyczyną jest token już użyty lub wygasły — tokeny reCAPTCHA v2 są jednorazowe i krótkotrwałe, więc każde opóźnienie lub ponowne wysłanie to wywoła. Zacznij od logowania surowej odpowiedzi HTTP z https://www.google.com/recaptcha/api/siteverify — tablica error-codes w tej odpowiedzi to główny sygnał diagnostyczny.

Dwie inne częste przyczyny: invalid-input-secret oznacza, że na backendzie przekazano błędny klucz tajny, a puste pole g-recaptcha-response po stronie serwera zwykle oznacza, że injekcja tokenu na frontendzie cicho się nie powiodła przed wysłaniem formularza.

Sprawdź też, czy websiteURL przekazany do CapMonster Cloud dokładnie odpowiada origin, na którym Google weryfikuje token — niezgodność powoduje błąd powiązania domeny.

Dla użytkowników nietechnicznych: użyj rozszerzenia przeglądarki CapMonster Cloud (Chrome/Firefox). Pozwala testować zachowanie captchy bezpośrednio na stronie i obserwować proces rozwiązywania w czasie rzeczywistym. Zainstaluj rozszerzenie, dodaj klucz API i otwórz stronę chronioną reCAPTCHA.

Dla QA i DevOps: wykonaj prosty trzyetapowy test:

  1. Wyślij formularz bez rozwiązania captchy — powinien zwrócić success: false.
  2. Wyślij formularz z rozwiązaną captchą — żądanie powinno przejść pomyślnie.
  3. Przeprowadź testy obciążeniowe (k6 lub JMeter, 100+ RPS) i sprawdź, czy wygasłe lub ponownie użyte tokeny są poprawnie odrzucane (np. HTTP 403).

Ważne: siteverify zawsze zwraca HTTP 200 — błędy określa pole success, a nie kod statusu HTTP.