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 MTCaptcha 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 MTCaptcha, 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 MTCaptcha 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:
type - MTCaptchaTask
websiteURL - Het adres van de hoofdpagina waar de captcha wordt opgelost.
websiteKey - De MTcaptcha-sleutel, die in de aanvraag wordt doorgegeven als parameter “sk”.
pageAction - De parameter action wordt in de aanvraag doorgegeven als “act” en verschijnt bij de tokenvalidatie. Geef deze alleen op als de waarde verschilt van de standaardwaarde – %24.
isInvisible - Geef true op als de captcha onzichtbaar is, dat wil zeggen een verborgen bevestigingsveld heeft. Bij vermoeden van botactiviteit wordt een extra controle uitgevoerd.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task":
{
"type": "MTCaptchaTask",
"websiteURL": "https://www.example.com",
"websiteKey": "MTPublic-abCDEFJAB",
"isInvisible": false,
"pageAction": "login"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"token": "v1(155506dc,c8c2e356,MTPublic-abCDEFJAB,70f03532a53...5FSDA**)"
},
"status": "ready"
}
// npm install playwright @zennolab_com/capmonstercloud-client
import { chromium } from 'playwright';
import { CapMonsterCloudClientFactory, ClientOptions, MTCaptchaRequest } from '@zennolab_com/capmonstercloud-client';
const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://example.com';
async function main() {
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
let websiteKey = null;
page.on('request', request => {
const url = request.url();
if (url.startsWith('https://service.mtcaptcha.com/mtcv1/api/getchallenge.json')) {
const params = new URL(url).searchParams;
const sk = params.get('sk');
if (sk) {
websiteKey = sk;
console.log('Extracted websiteKey (sk):', websiteKey);
}
}
});
await page.goto(TARGET_URL, { waitUntil: 'networkidle' });
if (!websiteKey) {
console.error('Failed to extract websiteKey (sk) from the page');
await browser.close();
return;
}
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
const mtcaptchaRequest = new MTCaptchaRequest({
websiteURL: TARGET_URL,
websiteKey: websiteKey,
isInvisible: false,
pageAction: 'login'
});
// Captcha oplossen
const result = await client.Solve(mtcaptchaRequest);
const verifiedToken = typeof result?.solution?.value === 'string'
? result.solution.value
: JSON.stringify(result.solution.token);
console.log('VerifiedToken:', verifiedToken);
// Token invoegen en formulier verzenden (vervang door de juiste selector)
await page.evaluate((token) => {
const input = document.querySelector('#mtcaptcha-verifiedtoken-1');
if (input) input.value = token;
}, verifiedToken);
console.log('Token inserted into input');
// await page.click('button[type="submit"]');
await page.waitForTimeout(5000);
await browser.close();
}
main().catch(err => {
console.error('An error occurred:', err);
});1. Registreer of log in op uw MTCaptcha-account.
2. Voeg na registratie uw site toe. U ontvangt twee sleutels.
Voorbeeld:
3. Configureer de MTCaptcha-client:
Plaats de code in <head> van de pagina.
Vervang <YOUR SITE KEY> door uw Site Key verkregen uit het MTCaptcha-dashboard.
<head>
<script>
var mtcaptchaConfig = {
sitekey: "<YOUR SITE KEY>"
};
(function() {
var mt_service = document.createElement('script');
mt_service.async = true;
mt_service.src = 'https://service.mtcaptcha.com/mtcv1/client/mtcaptcha.min.js';
(document.head || document.body).appendChild(mt_service);
var mt_service2 = document.createElement('script');
mt_service2.async = true;
mt_service2.src = 'https://service2.mtcaptcha.com/mtcv1/client/mtcaptcha2.min.js';
(document.head || document.body).appendChild(mt_service2);
})();
</script>
</head>
Voeg de captcha-container toe aan <body>
Waar u de captcha wilt weergeven (bijv. binnen een formulier):
<div class="mtcaptcha"></div>De widget wordt automatisch geladen.
U kunt kant-en-klare SDK en plugins gebruiken voor snelle integratie:
MTCaptcha biedt ook een handige demopagina om de bescherming te testen en in te stellen voordat u deze op uw site implementeert.
4. Server-side werken. Verkrijg Verified-Token op de client.
Via een verborgen formulierveld:
<input type="hidden" name="mtcaptcha-verifiedtoken" />Of via JS:
mtcaptcha.getVerifiedToken() / mtcaptchaVerifiedCallback(status)Stuur de token naar de server samen met het formulier of verzoek.
Controleer de token via API (server-side verificatie):
GET https://service.mtcaptcha.com/mtcv1/api/checktoken?privatekey=<PRIVATE_KEY>&token=<TOKEN>Alternatieve URL voor servers met firewall:
https://service2.mtcaptcha.com/mtcv1/api/checktokenVerwerk de respons:
success: true → captcha geslaagd, ga door met verwerken.
{
"success": true,
"tokeninfo": {
"v": "1.0",
"code": 201,
"codeDesc": "valid:captcha-solved",
"tokID": "ae1e60a1e249c217cb7b05c4dba8dd0d",
"timestampSec": 1552185983,
"timestampISO": "2019-03-10T02:46:23Z",
"hostname": "some.example.com",
"isDevHost": false,
"action": "",
"ip": "10.10.10.10"
}
}success: false → fout (token verlopen, hergebruik, enz.)
const { MTCaptcha } = require('mtcaptcha');
const PRIVATE_KEY = 'YOUR_PRIVATE_KEY';
const tokenFromClient = 'TOKEN';
const mt = new MTCaptcha(PRIVATE_KEY, tokenFromClient);
mt.verify((result) => {
if (result.success) {
console.log('Captcha passed!', result.tokeninfo);
} else {
console.error('Captcha failed:', result.fail_codes || result.error);
}
});Voor een diepgaandere studie van MTCaptcha-functionaliteiten — widgetcustomisatie, client/server configuratie, framework-integratie en andere aspecten — raadpleeg de officiële documentatie.
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 MTCaptcha 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 MTCaptcha 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.