reCAPTCHA v2
en CapMonster Cloud

Captcha’s oplossen, integreren op je site en end-to-end testen.

Prijzen van reCAPTCHA V2-oplossing

Bericht
Prijs (USD)
$ 0.60
1000 tokens
Heb je een site geërfd met een ingebouwde captcha of andere bescherming, maar zonder toegang tot de broncode? Dan wil je natuurlijk weten welke oplossing draait, of die goed is ingesteld en hoe je de werking test.

In dit artikel hebben we geprobeerd antwoord te geven op alle belangrijke vragen. De eerste stap bij het oplossen van het vraagstuk is vaststellen welk beveiligingssysteem wordt gebruikt. Daarvoor kun je de lijst met populaire captcha’s en anti-botbeveiligingssystemen raadplegen, met visuele voorbeelden en kernkenmerken die je helpen snel te bepalen waarmee je te maken hebt.

Als je ontdekt dat je website reCAPTCHA V2 gebruikt, is de volgende stap om de eigenschappen en werking ervan uitgebreider te bestuderen. In dit artikel vind je ook een handleiding voor het integreren van reCAPTCHA V2, zodat je volledig begrijpt hoe het systeem op je website werkt. Zo kun je niet alleen de huidige bescherming beter doorgronden, maar ook het onderhoud ervan goed plannen.

Wat is Google reCAPTCHA v2
Wat is Google reCAPTCHA v2
reCAPTCHA v2 is een beveiligingssysteem van Google dat spam en andere geautomatiseerde acties moet blokkeren die een website kunnen schaden. Het helpt echte bezoekers van bots te onderscheiden zodat je webresource veilig en stabiel blijft.
Background
Voorbeelden van reCAPTCHA V2
reCAPTCHA v2
reCAPTCHA v2
De klassieke captcha met een checkbox waar de gebruiker moet bevestigen dat hij mens is. Soms verschijnt een extra pop-up met een opdracht, bijvoorbeeld het kiezen van bepaalde afbeeldingen.
reCAPTCHA v2 Invisible
reCAPTCHA v2 Invisible
Een onzichtbare captcha die automatisch controleert, zonder interactie van de gebruiker en zonder dat er op een checkbox geklikt hoeft te worden.
reCAPTCHA v2 Enterprise
reCAPTCHA v2 Enterprise
Een enterprise-versie met extra beheers- en beveiligingsfuncties.

Zo los je reCAPTCHA v2 op met CapMonster Cloud

Bij het testen van formulieren met reCAPTCHA V2 moet je vaak bevestigen dat de captcha goed is ingebouwd en werkt.

Je kunt de captcha op je site handmatig testen.

  • Open de pagina met het formulier en controleer of de captcha verschijnt.
  • Probeer het formulier te versturen zonder oplossing — de server hoort een fout terug te geven.
  • Na een succesvolle oplossing moet het formulier probleemloos worden verzonden.

Voor automatische oplossingen kun je tools zoals CapMonster Cloud gebruiken. Deze ontvangen de captcha-parameters, verwerken ze op hun servers en sturen een token terug dat je in het formulier kunt zetten om de controle zonder gebruikersinteractie te omzeilen.

Werken met CapMonster Cloud via de API bestaat doorgaans uit de volgende stappen:

Taak aanmakenTaak aanmaken
arrow
API-aanvraag versturenAPI-aanvraag versturen
arrow
Resultaat ontvangenResultaat ontvangen
arrow
Token op de pagina plaatsenToken op de pagina plaatsen
arrow
reCAPTCHA v2 oplossen met kant-en-klare libraries
CapMonster Cloud biedt SDK’s voor Python, JavaScript (Node.js) en C# voor een snelle integratie.
Python
JavaScript
C#
Oplossen, token invoegen en formulier versturen
Een Node.js-voorbeeld dat de volledige captcha-workflow op je webpagina laat zien. Mogelijke aanpakken: HTTP-verzoeken gebruiken om HTML en captcha-parameters op te halen, het antwoord verzenden en het resultaat verwerken; of automatiseringstools (bijv. Playwright) gebruiken om de pagina te openen, op de captcha te wachten, parameters te sturen (met geldige of ongeldige data), het resultaat via de CapMonster Cloud-client op te halen en de token in het formulier te plaatsen.
// 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' });

  // Captcha-oplossing
  const solution = await cmc.Solve(new RecaptchaV2Request({ websiteURL: TARGET_URL, websiteKey: WEBSITE_KEY }));
  const token = solution.solution.gRecaptchaResponse;

  // Voeg de token in en verstuur het formulier (vervang door de gewenste selector)
  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 opgelost en formulier verzonden!');
})();
reCAPTCHA v2 op je site implementeren
Wil je weten hoe de captcha op je site werkt, welke validatielogica wordt gebruikt en hoe je haar opnieuw instelt? Bekijk dan deze sectie. Hier staat het volledige installatieproces zodat je alle details snel begrijpt.

1. Ga naar de pagina van de reCAPTCHA-beheerdersconsole.

2. Registreer een nieuwe site.

Kies het type captcha — reCAPTCHA v2 (checkbox met opdrachten of de onzichtbare variant).

HowTo Connect image 1

3. Haal twee sleutels op:

  • Site key — publieke sleutel (front-end);
  • Secret key — privésleutel (servervalidatie).

HowTo Connect image 2

In de instellingen kun je domeinen opgeven die reCAPTCHA mogen gebruiken of het beveiligingsniveau kiezen, van eenvoudig tot streng.

4. Voorbeeld van client-side code. HTML-formulier met reCAPTCHA v2 (kan rechtstreeks in de body worden geplakt):

HTML-formulier met reCAPTCHA v2HTML-formulier met reCAPTCHA v2
arrow

5. Valideer de reactie aan de serverzijde.

PHP-voorbeeldPHP-voorbeeld
arrow
Background
Mogelijke fouten en debugging
Bug Icon
Ongeldige site of sleutel
De captcha laadt niet of retourneert invalid-input-secret.
Bug Icon
Time-out bij oplossen
De server ontving de reactie niet op tijd. Verleng de wachttijd.
Bug Icon
Lege token
Er trad een fout op bij het doorgeven van het resultaat aan de pagina.
Bug Icon
Response success=false
De token is verlopen, opnieuw gebruikt of gemanipuleerd. Schakel request-logging in en controleer het veld error-codes in de Google-respons.
Controle van de robuustheid
Controleer na de integratie of het systeem de site echt beschermt tegen geautomatiseerde acties.
Aanbevelingen voor veiligheid en optimalisatie
Bewaar de <span class="font-bold">Secret Key</span> alleen op de server en stuur deze niet naar de client-side.
Log de foutcodes <span class="font-bold">(error-codes)</span> om te begrijpen waarom bepaalde controles zijn mislukt.
Voeg onderaan het formulier links toe naar het <span class="font-bold">privacybeleid</span> en de <span class="font-bold">Google-gebruiksvoorwaarden</span>, zoals door de licentie vereist.
Conclusie

Als je een website in beheer krijgt waarop al een captcha of een ander beveiligingssysteem is geïnstalleerd en je geen toegang hebt tot de code, is dat geen probleem! Het is vrij eenvoudig te bepalen welke technologie precies wordt gebruikt. Voor het controleren of alles correct werkt, kun je de herkenningsservice CapMonster Cloud in een geïsoleerde testomgeving gebruiken, zodat je zeker weet dat het tokenverwerkingsmechanisme en de validatielogica correct functioneren.

In het geval van reCAPTCHA V2 is het voldoende om het systeem te herkennen, het gedrag te analyseren en te bevestigen dat de beveiliging correct werkt. In het artikel hebben we laten zien hoe je reCAPTCHA V2 kunt herkennen en waar je instructies vindt om het te koppelen of opnieuw te configureren, zodat je de bescherming met vertrouwen kunt onderhouden en de werking onder controle kunt houden.

Conclusion

Veelgestelde vragen over reCAPTCHA v2

Om een oplossingsverzoek te verzenden, doe een POST met een JSON-payload naar https://api.capmonster.cloud/createTask:

{
  "clientKey": "API_KEY",
  "task": {
    "type": "RecaptchaV2Task",
    "websiteURL": "[target_page_URL_with_reCAPTCHA]",
    "websiteKey": "[reCAPTCHA_website_key]"
  }
}
  • clientKey — de API-sleutel van uw CapMonster Cloud-account
  • task.type: stel in op RecaptchaV2Task
  • task.websiteURL: URL van de pagina waar de captcha verschijnt
  • task.websiteKey: de publieke sitekey in de HTML van de pagina

Voor de volgende stappen, lees de reCAPTCHA-oplossingsdocumentatie.

Verstuur de taak met een verzoek naar https://api.capmonster.cloud/createTask met de parameters uit de vorige vraag.

Poll https://api.capmonster.cloud/getTaskResult met uw clientKey en taskId (teruggegeven in het createTask-antwoord).

Zodra het veld status ready is, bevat het antwoord een gRecaptchaResponse-string — dat is uw opgeloste token.

Dien het token in op de doelsite met een van de volgende methoden, afhankelijk van het reCAPTCHA-v2-type en de architectuur van de site:

  • Standaard DOM-injectie: voor typische checkbox-integraties injecteert u het token in het verborgen tekstveld (bijv. document.getElementById("g-recaptcha-response").innerHTML = token;) met Playwrights page.evaluate() (of het Puppeteer/Selenium-equivalent). Roep daarna programmatisch form.submit() aan of activeer de verzendknop.
  • JavaScript-callback (onzichtbare reCAPTCHA): als de pagina een onzichtbare captcha met callback gebruikt, identificeer de functienaam in het data-callback-attribuut en voer deze uit via uw automatiseringsscript, waarbij u het token als argument doorgeeft (bijv. onVerifyCallback("TOKEN_STRING")).
  • Direct HTTP-verzoek: om browser-rendering te omzeilen, onderschept u het native verzendverzoek van de site en stuurt u het token rechtstreeks naar de backend als onderdeel van de formuliergegevens (bijv. g-recaptcha-response=TOKEN_STRING) via uw HTTP-client.

De doelserver haalt het token uit uw inzending en valideert het via Googles siteverify-endpoint.

CapMonster Cloud verwerkt beide modi met dezelfde API-aanroep. Voor de onzichtbare modus voegt u de parameter isInvisible: true toe aan het createTask-verzoek. Om de reCAPTCHA-oplossing correct te bevestigen, bepaalt u welke methode de site gebruikt om het token in te dienen. Deze methoden worden beschreven in de vorige vraag.

De meest voorkomende oorzaak is een token dat al is gebruikt of is verlopen — reCAPTCHA-v2-tokens zijn eenmalig en kortlevend, dus elke vertraging of dubbele inzending veroorzaakt dit. Begin met het loggen van het ruwe HTTP-antwoord van https://www.google.com/recaptcha/api/siteverify — de error-codes-array in dat antwoord is uw belangrijkste diagnostisch signaal.

Twee andere veelvoorkomende oorzaken: invalid-input-secret betekent dat de verkeerde geheime sleutel op de backend is doorgegeven, terwijl een leeg g-recaptcha-response-veld op de server meestal betekent dat de frontend-tokeninjectie stil is mislukt voordat het formulier werd verzonden.

Controleer ook of de websiteURL die u aan CapMonster Cloud hebt doorgegeven exact overeenkomt met de origin waar Google het token valideert — een mismatch veroorzaakt een domeinbindingsfout.

Voor niet-technische gebruikers: gebruik de CapMonster Cloud browserextensie (Chrome/Firefox). Hiermee kunt u captcha-gedrag direct op de pagina testen en het oplossingsproces in realtime volgen. Installeer de extensie, voeg uw API-sleutel toe en open uw reCAPTCHA-beveiligde pagina.

Voor QA en DevOps: volg een eenvoudige test in drie stappen:

  1. Verstuur het formulier zonder de captcha op te lossen — het moet success: false retourneren.
  2. Verstuur het formulier met een opgeloste captcha — het verzoek moet succesvol zijn.
  3. Voer loadtests uit (k6 of JMeter, 100+ RPS) en controleer of verlopen of hergebruikte tokens correct worden afgewezen (bijv. HTTP 403).

Belangrijk: siteverify retourneert altijd HTTP 200 — fouten worden bepaald door het veld success, niet door de HTTP-statuscode.