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 v3 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 v3, 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.
Hoe reCAPTCHA v3 op te lossen via CapMonster Cloud
Bij het testen van formulieren met reCAPTCHA v3 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:
In het verzoek om reCAPTCHA v3 op te lossen moet je de volgende parameters opgeven:
type - RecaptchaV3TaskProxyless;
websiteURL - het adres van de pagina waarop de captcha wordt opgelost;
websiteKey - de sleutelidentifier (sitekey) die is opgegeven op de pagina van je site met de captcha;
minScore - kan een waarde hebben van 0.1 tot 0.9;
pageAction - de waarde van de parameter action die wordt doorgegeven door de ReCaptcha-widget in Google. Standaardwaarde: verify.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta",
"websiteKey": "6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob",
"minScore": 0.7,
"pageAction": "myverify"
}
}
{
"errorId":0,
"taskId":407533072
}
https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKv…hKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
}
}
const { chromium } = require('playwright');
const {
CapMonsterCloudClientFactory,
ClientOptions,
RecaptchaV3ProxylessRequest
} = require('@zennolab_com/capmonstercloud-client');
(async () => {
const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta'; // URL van uw pagina met de captcha
const SITE_KEY = '6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob';
const API_KEY = 'your_capmonster_cloud_api_key'; // Vul uw CapMonster Cloud API-sleutel in
// CapMonster-client aanmaken
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));
// Browser openen
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });
// reCAPTCHA v3-taak configureren
const recaptchaRequest = new RecaptchaV3ProxylessRequest({
websiteURL: TARGET_URL,
websiteKey: SITE_KEY,
minScore: 0.6,
pageAction: 'myverify', // overeenstemming met de action op de pagina
});
// Captcha oplossen
const solution = await cmcClient.Solve(recaptchaRequest);
const token = solution.solution?.gRecaptchaResponse;
if (!token) {
console.error('Token is leeg, controleer sitekey en URL');
await browser.close();
return;
}
console.log('Token ontvangen:', token);
// Token in een verborgen veld plaatsen en een klik op de knop simuleren
// Vervang door de benodigde selectors
await page.evaluate((t) => {
const input = document.querySelector('#v3_token');
if (input) input.value = t;
const form = document.querySelector('#v3_form');
if (form) form.submit();
}, token);
console.log('Token is ingevoegd en het formulier is verzonden');
await page.waitForTimeout(5000);
await browser.close();
})();1. Ga naar de pagina van het beheerpaneel van reCAPTCHA.
2. Registreer een nieuwe site en kies het type captcha — reCAPTCHA v3

3. Verkrijg twee sleutels:
- Site key — openbare sleutel (wordt aan de frontendzijde gebruikt);
- Secret key — geheime sleutel (wordt aan de serverzijde gebruikt voor verificatie)

U kunt de instellingen openen, waar u bijvoorbeeld extra domeinen kunt opgeven waarop reCAPTCHA gebruikt mag worden of meldingen kunt configureren bij problemen met de site of een toename van verdacht verkeer.
4. Codevoorbeelden voor de clientzijde
De eenvoudigste manier om reCAPTCHA v3 te gebruiken, is door de JavaScript API te laden en attributen aan een knop toe te voegen.
API laden:
<script src="https://www.google.com/recaptcha/api.js"></script>Callback-functie voor het formulier:
<script>
function onSubmit(token) {
document.getElementById("form").submit();
}
</script>
Knop met reCAPTCHA-attributen:
<button class="g-recaptcha"
data-sitekey="reCAPTCHA_sitekey"
data-callback='onSubmit'
data-action='submit'>Submit</button>
Voor volledige controle gebruikt u grecaptcha.execute met de parameter render:
API laden met sleutel:
<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>Programmeerbare aanroep:
<script>
function onClick(e) {
e.preventDefault();
grecaptcha.ready(function() {
grecaptcha.execute('reCAPTCHA_sitekey', {action: 'submit'}).then(function(token) {
// Verzend de token naar de server voor verificatie
});
});
}
</script>
De token moet direct naar de server worden verzonden voor verificatie.
Belangrijke opmerkingen:
- Geldigheidsduur van de token: de token die door reCAPTCHA v3 wordt teruggegeven, is 2 minuten geldig. Zorg ervoor dat u deze binnen die tijd naar de server stuurt.
- Verificatie aan de serverzijde: nadat de server de token heeft ontvangen, moet hij een POST-verzoek sturen naar https://www.google.com/recaptcha/api/siteverify met de parameters:
– secret: uw geheime sleutel
– response: de token die van de client is ontvangen– remoteip (optioneel): IP-adres van de gebruiker - De server van Google retourneert een JSON-antwoord met informatie over het verificatieresultaat.
5. Voer nu aan de serverzijde de controle van het antwoord uit
<?php
// Uw geheime reCAPTCHA v3-sleutel (Secret Key)
$secret = 'YOUR_SECRET_KEY';
// Token uit het formulier ophalen
$token = $_POST['recaptcha-token'] ?? '';
// Verzoek naar Google sturen om de token te controleren
$response = file_get_contents(
"https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$token}"
);
$result = json_decode($response, true);
// Controleren of de verificatie gelukt is en wat de vertrouwensscore is
if ($result['success'] && $result['score'] >= 0.5 && $result['action'] === 'submit') {
echo "Verificatie geslaagd";
} else {
http_response_code(403);
echo "Verificatie mislukt";
}
?>
Opmerkingen:
- Zorg ervoor dat aan de clientzijde de token in een verborgen formulierveld met de naam recaptcha-token naar de server wordt verzonden:
- De drempel van de score kan aangepast worden afhankelijk van de gewenste strengheid (bijvoorbeeld 0.3–0.7).
- Extra controle op action === 'submit' verhoogt de veiligheid en helpt te bevestigen dat de token voor de specifieke actie op de pagina is gegenereerd.
<input type="hidden" name="recaptcha-token" id="recaptcha-token">Ondersteunde captchas
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 v3 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 v3 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.