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 Imperva Incapsula 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 Imperva Incapsula, 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 pagina's die zijn beveiligd door Imperva Incapsula, is het vaak nodig om te verifiëren of de beveiliging correct werkt en of het systeem verdacht verkeer juist filtert.
U kunt de werking van de beveiliging op uw site handmatig controleren:
Voor het automatiseren van dergelijke controles kunt u diensten zoals CapMonster Cloud gebruiken.
CapMonster accepteert de parameters van de Imperva-challenge (bijvoorbeeld de _incap_ cookie, data uit HTML en scripts), verwerkt deze en retourneert kant-en-klare geldige cookies, die in de browser of HTTP-client kunnen worden ingevoegd.
Werken met CapMonster Cloud via de API bestaat doorgaans uit de volgende stappen:
In het verzoek om Incapsula op te lossen, moeten de volgende parameters worden opgegeven:
type - CustomTask;
class - Imperva;
websiteURL - adres van de hoofdpagina waarop Incapsula zich bevindt;
incapsulaScriptUrl (binnen metadata) - "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3" — naam van het js-bestand van Incapsula;
incapsulaCookies (binnen metadata) - uw cookies van Incapsula. Te verkrijgen op de pagina via document.cookie of in de request header Set-Cookie: "incap_sess_*=...; visid_incap_*=..." (zie voorbeeldverzoek /createTask);
reese84UrlEndpoint (binnen metadata) - naam van het endpoint waar de reese84 fingerprint naartoe wordt gestuurd;
userAgent - User-Agent van de browser. Stuur alleen een actuele UA van Windows OS;
Ook is voor deze taak het gebruik van uw eigen proxy's vereist:
proxyType :
proxyAddress - IP-adres van de proxy IPv4/IPv6;
proxyPort - poort van de proxy;
proxyLogin - inlognaam van de proxyserver;
proxyPassword - wachtwoord van de proxyserver.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "CustomTask",
"class": "Imperva",
"websiteURL": "https://example.com",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"metadata": {
"incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3",
"incapsulaCookies": "incap_ses_1166_2930313=br7iX33ZNCtf3HlpEXcuEDzz72cAAAAA0suDnBGrq/iA0J4oERYzjQ==; visid_incap_2930313=P3hgPVm9S8Oond1L0sXhZqfK72cAAAAAQUIPAAAAAABoMSY9xZ34RvRseJRiY6s+;",
"reese84UrlEndpoint": "Built-with-the-For-hopence-Hurleysurfecting-the-"
},
"proxyType": "http",
"proxyAddress": "8.8.8.8",
"proxyPort": 8080,
"proxyLogin": "proxyLoginHere",
"proxyPassword": "proxyPasswordHere"
}
}{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}{
"errorId":0,
"status":"ready",
"solution": {
"domains": {
"https://example.com": {
"cookies": {
"___utmvc": "NMB+nRa4inxXNeXuh...MWIwNmU3MQ==; Max-Age=31536000; Domain=.site.com; Path=/; Secure; SameSite=Lax"
}
}
}
}
}De gegevens ontvangen van CapMonster Cloud (geldige Incapsula-cookies) kunnen in de browsercontext of een HTTP-client worden geplaatst. Hierna herkent de site het verzoek als geverifieerd en laat de gebruiker door zonder extra challenges.
Voor automatisering en testen is het handig om Puppeteer, Selenium of Playwright te gebruiken — hiermee kunt u:
Zo kunt u de correctheid van de beveiliging controleren en ervoor zorgen dat de site geldige Incapsula-sessies correct verwerkt.
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { chromium } from "playwright";
import { CapMonsterCloudClientFactory, ClientOptions, ImpervaRequest } from '@zennolab_com/capmonstercloud-client';
async function main() {
// 1) Instellingen
const TARGET_URL = "https://example.com";
const API_KEY = "YOUR_CAPMONSTER_API_KEY";
const proxy = {
proxyType: "http",
proxyAddress: "PROXY_IP",
proxyPort: 8080,
proxyLogin: "PROXY_USER",
proxyPassword: "PROXY_PASS"
};
// 2) We openen de site en verzamelen Imperva-cookies
const browser = await chromium.launch({
headless: true,
proxy: {
server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
username: proxy.proxyLogin,
password: proxy.proxyPassword
}
});
const page = await browser.newPage();
await page.goto(TARGET_URL, { waitUntil: "networkidle" });
const cookies = await page.context().cookies();
const impervaCookiesString = cookies
.filter(c => c.name.startsWith("visid_incap_") || c.name.startsWith("incap_ses_"))
.map(c => `${c.name}=${c.value}`)
.join("; ");
console.log("Imperva-cookies van de huidige pagina:", impervaCookiesString);
await browser.close();
// 3) We lossen de Imperva-challenge op
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
const impervaRequest = new ImpervaRequest({
websiteURL: TARGET_URL,
userAgent: "USER_AGENT_STRING",
metadata: {
incapsulaScriptUrl: "_Incapsula_Resource?example_param",
incapsulaCookies: impervaCookiesString
},
proxy
});
const result = await cmcClient.Solve(impervaRequest);
console.log("Oplossing:", result);
// 4) We voegen de ontvangen cookies in
const domain = new URL(TARGET_URL).hostname;
const solutionCookiesObj = result.solution.domains[domain].cookies;
const solutionCookies = Object.entries(solutionCookiesObj).map(([name, value]) => ({
name,
value,
domain: ".your-domain",
path: "/",
secure: true,
httpOnly: false
}));
// 5) Cookies instellen en pagina openen
const browser2 = await chromium.launch({
headless: false,
proxy: {
server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
username: proxy.proxyLogin,
password: proxy.proxyPassword
}
});
const context2 = await browser2.newContext();
await context2.addCookies(solutionCookies);
const page2 = await context2.newPage();
const resp2 = await page2.goto(TARGET_URL, { waitUntil: "networkidle" });
// Output van de status van de eindpagina (optioneel)
// console.log("Status van de eindpagina na het instellen van cookies:", resp2?.status());
// …of eindscreenshot
// await page2.screenshot({ path: "final_page.png" });
console.log("Pagina geladen met toegepaste Imperva-cookies.");
}
main().catch(console.error);
1. Maak een account aan (gebruik uw werk-e-mail voor registratie) en ga naar de Imperva Cloud Security Console.
2. Bevestig uw e-mail. Na het inloggen komt u in het controlepaneel (meer over het werken met de Security Console vindt u in de documentatie).
3. Open de sectie Websites en voer het echte domein van uw site in.

Imperva zal automatisch:
4. Configureer DNS-records. Als Imperva de stap toont:
Point dev.mysite.com DNS records to ImpervaDoe het volgende:
Type: CNAME
Naam: dev (subdomein dat u verbindt)
Waarde: <uw_imperva_host>.ng.impervadns.net
Voorbeeld:
dev.mysite.com > CNAME > xivaxeo.ng.impervadns.netOptioneel: schakel ondersteuning voor Non-SNI clients in
Als Imperva de melding toont:
If you expect Non-SNI traffic…
Dit betreft verouderde clients en specifieke integraties. Als uw site standaard is, kan deze stap worden overgeslagen.
Indien nodig, schakel in:
CDN > Delivery > Support Non-SNI clients
5. Wacht op DNS-verificatie. Imperva activeert de beveiliging en SSL.
Wanneer de DNS verbinding maakt, zal Imperva automatisch:
6. Beperk directe toegang tot uw server (aanbevolen)
Om ervoor te zorgen dat het verkeer alleen via Imperva loopt, moet u op uw server:
Meer details vindt u in de sectie Create Rules.
7. Controleer de werking van de site. Na activering
curl -I https://dev.mysite.comIn de headers zouden regels moeten verschijnen zoals:
HTTP/1.1 403 Forbidden
Content-Type: text/html
Cache-Control: no-cache, no-store
Connection: close
Content-Length: 1234
X-Iinfo: 00-00000000-0 0NNN RT(1234567890 0) q(0 -1 -1 1) r(0 -1) B16(0,0,0) U24
Strict-Transport-Security: max-age=31536000
Set-Cookie: visid_incap_00000000000000000000000000000000=ABCDEFG1234567890TESTCOOKIE; expires=Wed, 11 Nov 2026 23:41:40 GMT; HttpOnly; path=/; Domain=.example.com; Secure; SameSite=None
Set-Cookie: incap_ses_0000_00000000=TESTSESSION1234567890; path=/; Domain=.example.com; Secure; SameSite=None
Dit betekent dat het verkeer via Imperva loopt.
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 Imperva Incapsula 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 Imperva Incapsula 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.