Skip to main content
Blog
Blog

AI-agent- en botdetectie: mensen, goede bots en kwaadaardige agents uit elkaar houden

Een classificatietaxonomie en een intentiegericht handhavingsmodel om mensen, goede bots en kwaadaardige agents te scheiden, en daarna te beslissen wat je met elk doet.

Jul 11, 2026 6 min read
AI-agent- en botdetectie: mensen, goede bots en kwaadaardige agents uit elkaar houden

Je hebt drie problemen die hetzelfde kostuum dragen. Een mens die je checkoutpagina leest, een zoekcrawler die hem indexeert en een stealth browser die er gestolen kaarten tegen afloopt, kunnen allemaal een geloofwaardige Chrome-user-agent en een schoon residentieel IP-adres tonen. Behandel ze als één hoop en je blokkeert ofwel omzet, ofwel laat je fraude door.

De oplossing is een taxonomie en een beslissing: classificeer elke sessie in een bekende klasse, lees wat hij probeert te doen en koppel dat aan precies één actie: toelaten, monitoren, uitdagen, agentcontent serveren of blokkeren. Deze post is het classificatie- en beslissingskader. Voor de onderliggende signaalmechaniek behandelt de gids voor het detecteren van AI-agentverkeer identiteits-, netwerk-, browser- en gedragssignalen; voor het kiezen van een leverancier, zie hoe je een AI-agentdetectieoplossing kiest. Wanneer je wilt weten waarom oudere verdedigingen dit verkeer missen, legt botdetectie met verouderde tools in het tijdperk van AI-agents het gat uit. Hier is de taak om te beslissen wat je doet zodra je het verkeer kunt zien.

Een taxonomie met vijf klassen die aan actie gekoppeld is

"Goede bot versus slechte bot" is te grof, want de winkelagent van een consument is geautomatiseerd en welkom, terwijl een zoekcrawler geautomatiseerd en welkom is om een compleet andere reden. Splits verkeer op in vijf operationele klassen, elk gekoppeld aan een standaardactie:

KlasseVoorbeeldenIntentieStandaardactie
MensEchte bezoekers, ingelogde klantenBrowsen, kopen, account beherenToelaten, risico monitoren
Goede botGooglebot, GPTBot, ClaudeBot, PerplexityBot, partner-API-botsContent indexeren, opgegeven integratieToelaten, rate-limiten, identiteit verifiëren
Neutrale automatiseringUptime-monitors, linkcheckers, RSS-/preview-fetchersOperationeel, lage waarde, lage schadeMonitoren, rate-limiten
Consumenten-AI-agentWinkel- en onderzoeksagents die voor een echte gebruiker handelenEen taak voltooien namens een persoonToelaten of agentcontent serveren
Kwaadaardige agentScrapers, card testers, account-misbruikbots, stealth browsersWaarde onttrekken of fraude plegenUitdagen of blokkeren

De klasse staat niet vast voor een sessie. Een consumentenagent die productpagina's bekijkt, zit in de kolom "toelaten" tot het moment dat hij op machinesnelheid betaalformulieren begint in te dienen, op dat punt zijn zijn intentie, en zijn klasse, veranderd.

Identiteit zegt je wie; intentie zegt je wat te doen

Identiteitssignalen beantwoorden "wie beweert dit te zijn": user-agent, opgegeven crawlernaam, fingerprint. Ze zijn noodzakelijk en bijna gratis te spoofen. Een zichzelf aankondigende GPTBot kun je verifiëren door het verzoek-IP te vergelijken met de gepubliceerde ranges van de crawler, wat impersonators vangt. Maar de gevaarlijke klassen kondigen zichzelf nooit aan.

Intentiesignalen beantwoorden "wat doet deze sessie". Ze leven in gedrag en in de runtime, en ze zijn veel duurder om overtuigend te vervalsen:

  • navigator.webdriver gezet, of te schoon onderdrukt, op een sessie die er verder uitziet als gewone Chrome.
  • CDP-/Runtime-lekken: Chrome DevTools Protocol-artefacten (cdc_-eigenschappen, gestripte accessibility-nodes) die verraden dat Playwright of Puppeteer de pagina aanstuurt.
  • Fingerprint-drift: WebGL, Canvas en Audio-context die geen coherent verhaal vertellen over één apparaat, of die binnen een sessie muteren.
  • Gedrag van residentiële proxy's: een "consumenten"-IP waarvan de tijdzone, taal en ASN-geschiedenis niet kloppen, roterend over verzoeken.
  • Actiecadans: een uitbarsting van kaartinzendingen in een paar minuten is intentie, geen identiteit. Geen enkele user-agent-string vertelt je dat; de opeenvolging van acties wel.

Je classificeert op identiteit plus intentie samen. Een sessie die elke identiteitscheck doorstaat maar faalt op runtime en cadans, is precies het kwaadaardige-agent-geval dat netwerk-only-tooling doorlaat.

Waarom dit in 2026 meer telt

De kwaadaardige klasse werd goedkoop. cside's webbeveiligingsonderzoek 2026 meldt dat het aantal playwright-stealth-installaties in de loop van 2025 ongeveer 10x steeg, een schone indicator voor hoe snel anti-detectie-automatisering van een niche naar mainstream aanvalstooling verschoof. cside 2026 research report

Tegelijkertijd groeiden de welkome klassen. AI-search-crawlers zorgen nu voor echte vindbaarheid, en consumentenwinkelagents voltooien echte aankopen. Dus beide uiteinden van de taxonomie breidden zich tegelijk uit: meer automatisering die je wilt toelaten, en meer automatisering die specifiek gebouwd is om daarop te lijken. Daarom faalt een binaire detector: hij heeft geen kolom voor "geautomatiseerd en welkom". Voor de diepe mechaniek van hoe het kwaadaardige uiteinde zich verbergt, zie stealth browsers en anti-detect browsers, uitgelegd. Dezelfde signalen vangen de credential-stuffing-runs die de login raken zodra een agent overgaat van browsen naar het aanvallen van accounts.

Koppel elke klasse aan één handhavingsactie

Zodra een sessie is geclassificeerd, moet handhaving deterministisch zijn. Vijf acties dekken de taxonomie:

  1. Toelaten: mensen en geverifieerde goede bots in hun verwachte paden. Loggen en doorgaan.
  2. Monitoren: neutrale automatisering en elke sessie waarvan de klasse nog dubbelzinnig is. Verzamel signalen, voeg nog geen wrijving toe.
  3. Uitdagen / afknijpen: sessies die richting kwaadaardig neigen. Vertraag ze, verhoog de verificatie of rate-limit de specifieke actie (login, checkout) in plaats van de hele site.
  4. Agentcontent serveren: een bekende consumentenagent op een pad waar je liever stuurt dan blokkeert. Geef hem een doelgebouwde weergave of een "neem contact op"-stap in plaats van ruwe prijzen te lekken naar een sessie met de vorm van een scraper.
  5. Blokkeren: bevestigde kwaadaardige intentie zoals kaarten aflopen, credential stuffing en account-misbruikruns.

Twee regels houden dit eerlijk. Beperk acties tot de actie, niet de bezoeker: daag de checkout-inzending uit, geef geen 403 op de homepage. En neem de beslissing per pagina: een stealth browser die een blogpost leest, is een monitor-geval; dezelfde sessie op je card vault is een blokkeergeval. Voor het draaiboek aan de blokkeerkant, zie hoe je AI-agents op je website blokkeert, en voor de betalingsfraudevariant, hoe je AI-card-testing-agents blokkeert.

Waar de classificatie moet gebeuren

Deze taxonomie werkt alleen als je intentie kunt lezen, en intentie leeft in de browser. AI-crawlers die nooit JavaScript uitvoeren, vuren nooit je analytics af, dus ze zijn onzichtbaar voor GA4 en PostHog. Consumenten- en kwaadaardige agents draaien echte browsers en lijken menselijk voor diezelfde tools. Geen van beide uiteinden is te scheiden op de analyticslaag, en het grootste deel van de kwaadaardige klasse doorstaat netwerklaagchecks volgens ontwerp: schoon IP, geldige user-agent, geloofwaardige verzoekvorm.

cside houdt de browserruntime in realtime in de gaten. Het legt het apparaat en het echte IP vast, brengt de automatiserings- en fingerprint-signalen aan het licht die intentie onthullen, markeert AI-agents en stealth browsers binnen de pagina, en stelt die signalen beschikbaar via API zodat je de beslissing toelaten / monitoren / uitdagen / serveren / blokkeren in je eigen workflow kunt aansturen. Dat is de laag waar een mens, een goede bot en een kwaadaardige agent eindelijk niet meer op elkaar lijken.

Verder lezen op cside

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks — web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

Vijf operationele klassen dekken het meeste verkeer: mensen, goede bots die je wilt (zoek- en AI-crawlers, partnerintegraties), neutrale automatisering die je tolereert (uptime-monitors, linkcheckers), consumenten-AI-agents die voor een echte gebruiker handelen (winkel- en onderzoeksagents), en kwaadaardige agents (scrapers, card testers, account-misbruikbots, stealth browsers). De klassen zijn van belang omdat elke klasse een andere handhavingsactie verdient. Ze platslaan tot 'bot of niet' gooit precies de beslissing weg die je eigenlijk moet nemen.

Identiteit is wie een sessie beweert te zijn: een user-agent-string, een opgegeven crawlernaam, een fingerprint. Intentie is wat de sessie op dit moment probeert te doen: een artikel lezen, voorraad blokkeren, kaarten aflopen, accounts aanmaken. Identiteit is goedkoop te spoofen en blijft stabiel binnen een sessie; intentie blijkt uit gedrag en verschuift naarmate de sessie van browsen overgaat naar een transactiepoging. Handhaving moet zich richten op intentie, want dat is het ding dat een aanvaller niet gratis kan vervalsen.

Omdat goede bots en consumenten-AI-agents nu deel uitmaken van je verkeer. Alles blokkeren verwijdert zoek- en AI-search-crawlers die voor vindbaarheid zorgen, breekt partnerintegraties en wijst winkelagents af die echte aankopen voltooien voor echte klanten. Het vernietigt ook je eigen zichtbaarheid. Zodra je alles met een 403 afwijst, leer je niets meer over wat je site daadwerkelijk raakte. Het doel is een beleid dat de nuttige klassen toelaat en wrijving reserveert voor de schadelijke.

Monitor en Beveilig Je Third-Party Scripts

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside dashboard interface met script monitoring en beveiligingsanalytics
Related Articles
Boek een demo