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 Enterprise 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 Enterprise, 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.
Bij het testen van formulieren met reCAPTCHA v2 Enterprise moet je vaak bevestigen dat de captcha goed is ingebouwd en werkt.
Je kunt de captcha op je site handmatig testen.
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:
Neem de volgende parameters op:
type - RecaptchaV2EnterpriseTask;
websiteURL - de URL van de pagina met de captcha;
websiteKey - de sitekey op die pagina;
enterprisePayload - geef deze mee als je reCAPTCHA Enterprise-widget een extra s-veld doorstuurt in het object dat naar grecaptcha.enterprise.render gaat samen met de sitekey;
pageAction - de action-waarde die naar Google wordt gestuurd. Standaard: 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. Open de pagina met de captcha
await page.goto('https://example.com');
// 3. Maak de CapMonster Cloud-client
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: '<your_capmonster_cloud_api_key>' })
);
// 4. Configureer de oplossing-request
const recaptchaRequest = new RecaptchaV2EnterpriseRequest({
websiteURL: page.url(),
websiteKey: '6Lf76sUnAAAAAIKLuWNyegRsFUfmI-3Lex3xT5N'
// enterprisePayload: { s: 'SOME_ADDITIONAL_TOKEN' } // Optionele enterprise-parameter
});
// 5. Los de captcha op via CapMonster
const solution = await cmcClient.Solve(recaptchaRequest);
const token = solution.solution.gRecaptchaResponse;
console.log('Captcha-token:', token);
// 6. Plaats de token in een verborgen veld
await page.evaluate((t) => {
const el = document.getElementById('g-recaptcha-response');
if (el) el.value = t;
}, token);
// 7. (Optioneel) Verstuur het formulier — pas de selector aan
await page.click('button[data-action="submit"]');
await page.waitForTimeout(5000);
await browser.close();
})();Omdat reCAPTCHA Enterprise op Google Cloud draait, moet je eerst een project aanmaken in de console:
1. Ga naar de Google Cloud Console.
2. Kies in het bovenste menu een bestaand project of klik op Nieuw project.
3. Vul een projectnaam in, geef je organisatie op en bevestig het aanmaken.

4. Open de API-pagina: reCAPTCHA Enterprise API en klik op Inschakelen.
5. Ga in de console naar Sleutel maken en klik op Sleutel maken.

6. Configureer de basisinstellingen:
Open daarna Aanvullende instellingen, schakel Ga je challenges gebruiken? in en activeer Checkbox Challenge.

7. Klik op Maken. Je krijgt een sleutel die je aan je site moet toevoegen om de bescherming te activeren.

8. Voeg het script toe aan je pagina.
<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. Valideer de response op de server.
De token (g-recaptcha-response) wordt naar de backend gestuurd.
Hij is 2 minuten geldig, valideer hem dus zo snel mogelijk nadat je hem ontvangt! Voor een veilige communicatie met de API raden we de officiële Google Cloud-bibliotheken aan:
<?php
require 'vendor/autoload.php';
// Installeer de Google Cloud-bibliotheken via 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;
/**
* Valideer de reCAPTCHA Enterprise-token en haal de risicoscore op.
*
* @param string $recaptchaKey Je reCAPTCHA-sleutel voor site/app
* @param string $token Token ontvangen van de client
* @param string $projectId Google Cloud-project-ID
* @param string $action Actienaam die aan de token is gekoppeld
*/
function create_assessment(string $recaptchaKey, string $token, string $projectId, string $action): void {
$client = new RecaptchaEnterpriseServiceClient();
$projectName = $client->projectName($projectId);
// Maak de assessment-gebeurtenis aan
$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 is ongeldig: ' . InvalidReason::name($response->getTokenProperties()->getInvalidReason());
return;
}
if ($response->getTokenProperties()->getAction() === $action) {
echo 'Risicoscore: ' . $response->getRiskAnalysis()->getScore();
} else {
echo 'De action in de reCAPTCHA-tag komt niet overeen met de verwachte waarde';
}
} catch (Exception $e) {
echo 'Fout bij het controleren van reCAPTCHA: ' . $e->getMessage();
}
}
// Roep de functie aan met de variabelen
create_assessment(
'YOUR_SITE_KEY',
'YOUR_USER_RESPONSE_TOKEN',
'YOUR_PROJECT_ID',
'YOUR_RECAPTCHA_ACTION'
);
?>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 Enterprise 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 Enterprise 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.