Kort samengevat: hoe bots op je website detecteren
- Stack drie lagen: Stack drie lagen: netwerk (IP, ASN, TLS-fingerprint), browser (fingerprint, headless-flags), gedrag (muis, timing, sequentie).
- Eén laag faalt: Elke enkele laag wordt omzeild. Residentiële proxies verslaan IP-reputatie. Stealth Playwright verslaat browser-fingerprints. Alleen gedrag vangt LLM-agents.
- Eén trustscore: Combineer tot één sessie-trustscore waarop je live kunt handelen. Sta 0-30 toe, verhoog 31-70, blokkeer 71-100.
Weinig tijd? Bekijk cside's AI-agentdetectie. Dit dekt alles hieronder in één deployment.
Waarom botdetectie moeilijker is geworden
Traditionele bots stuurden rauwe HTTP-verzoeken zonder browsercontext. Ze vangen was eenvoudig: let op ontbrekende headers, vreemde user-agentstrings of verzoeksnelheden die geen mens kan produceren.
Moderne bots zijn anders. AI-agents zoals OpenAI Operator, Claude for Chrome, Playwright, Puppeteer en Selenium draaien in echte browserengines. Ze renderen JavaScript, voeren event-handlers uit en produceren verzoekpatronen die op basisniveau op echte gebruikers lijken. Puppeteer en Playwright besturen Chromium rechtstreeks. Selenium bestuurt een volledig gerenderde browser. User-agentcontroles en eenvoudige headerinspectie scheiden deze niet van menselijke bezoekers.
Het probleem is verschoven van het herkennen van goedkope bedriegers naar het identificeren van geavanceerde actoren die bewust moeite hebben gedaan om er menselijk uit te zien.
Netwerksignalen: wat ze vangen en hun grenzen
Netwerksignalen vormen de buitenste detectielaag. Ze zijn snel en goedkoop en filteren massaal verkeer met weinig moeite voordat iets duurders draait.
User-agentstrings
De user-agentheader benoemt de browser en het besturingssysteem dat het verzoek doet. Veel eenvoudige scrapers sturen generieke of verraderlijke user-agentstrings, waardoor ze makkelijk te markeren zijn.
De grens is duidelijk: elke HTTP-client kan elke gewenste user-agentstring instellen. Een bot die Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 stuurt, is op de netwerklaag niet te onderscheiden van een echte Chrome-gebruiker. Filteren op user agent vangt luie bots en weinig anders.
Verzoeksnelheid
Gescripte floods, credential stuffing en agressieve scrapers genereren vaak verzoeksnelheden die geen mens kan evenaren. Rate limiting en anomaliedetectie op verzoeken per seconde of per sessie vangen die patronen.
Het gat is dat AI-agents op menselijke snelheid, steeds gebruikelijker in 2026, verzoeken doen op snelheden die binnen normale menselijke bereiken vallen. Een AI-agent die een formulier doorloopt, doet er misschien 8 tot 15 seconden over per actie, ruim binnen gewoon gebruikersgedrag.
IP-reputatie
IP-reputatiecontroles markeren bekende datacenterbereiken en VPN-exitnodes, wat helpt om standaard botverkeer via cloudinfrastructuur te filteren.
Residentiële proxy's omzeilen dit volledig. Onze gids over hoe je VPN- en proxyverkeer detecteert behandelt proxydetectie volledig.
Geautomatiseerde bots die op grote schaal gestolen inloglijsten testen, blijven een primaire inbraakvector. Het Verizon Data Breach Investigations Report vond dat 39% van de inbreuken in 2025 gestolen inloggegevens betrof, de payload die die bots afleveren.
| Inbraakvector (2025) | Aandeel |
|---|---|
| Inbreuken met gestolen inloggegevens | 39% |
| Andere vectoren | 61% |
Bron: Verizon Data Breach Investigations Report.
Browsersignalen: wat ze vangen en hun grenzen
Browsersignalen onderzoeken de JavaScript-omgeving binnen de browser om te beoordelen of die overeenkomt met een echte, door een mens bediende browser.
Headless-browservlaggen
De meest basale controle leest navigator.webdriver, die op true staat in browsers die door het WebDriver-protocol worden aangestuurd, waaronder Puppeteer en Selenium. Deze eigenschap uitlezen vangt kant-en-klare, niet-geconfigureerde botopstellingen.
De grens is dat dit een patch van één regel is. Elk productiewaardig framework zet navigator.webdriver op false voordat het paginalogica draait, dus de vlag alleen vangt uitsluitend tests in de ontwikkelingsfase.
Ontbrekende browser-API's
Echte browsers stellen een consistente set JavaScript-objecten beschikbaar: window.chrome, navigator.plugins, navigator.mimeTypes en andere API's die een werkende browser weerspiegelen. Headless- of minimale omgevingen laten deze vaak weg, of stellen ze op een manier beschikbaar die afwijkt van een echte browser.
Dezelfde kanttekening geldt: geavanceerde bots patchen deze eigenschappen. De detectiewaarde komt van het controleren van combinaties van API's en hun interne consistentie in plaats van één enkele eigenschap.
Entropie van canvas- en WebGL-fingerprints
Wanneer een browser een canvas-element of een WebGL-scène rendert, varieert de uitvoer licht met de grafische hardware, de driverversie en de renderpijplijn. Een echt apparaat met een GPU produceert uitvoer met natuurlijke entropie over deze dimensies.
Bots die in minimale of gevirtualiseerde omgevingen draaien, produceren vaak canvas- en WebGL-uitvoer met lage entropie omdat ze echte GPU-hardware missen. Abnormaal uniforme fingerprints of fingerprints met lage entropie zijn een betekenisvol teken dat de renderomgeving geen echt gebruikersapparaat is.
cside analyseert 250+ signalen, waaronder canvas-entropie, kenmerken van fontrendering, WebGL-fingerprint, schermgegevens en navigator-eigenschappen, om een stabiele device-fingerprint te produceren die standhoudt in incognitomodus, bij VPN-verbindingen en na het wissen van cookies. Het combineren van zoveel signalen maakt het voor een bot erg moeilijk om op elke dimensie tegelijk een geslaagd resultaat te vervalsen.
Gedragssignalen: het moeilijkst te vervalsen
Gedragssignalen kijken naar hoe een gebruiker met de pagina omgaat in plaats van hoe de browseromgeving eruitziet. Ze kosten het meest om te genereren, omdat ze echte interactie nodig hebben om te meten, en ze zijn ook het moeilijkst voor bots om overtuigend te vervalsen.
Muisbewegingspatronen
Echte gebruikers bewegen een muis langs gebogen, versnellende paden. De fysica van menselijke handbewegingen produceert karakteristieke versnellingscurves, overshoots en microcorrecties. Bots die synthetische muis-events genereren, produceren doorgaans perfect rechte lijnen, perfect vloeiende curves of statistisch onmogelijke patronen zoals snelheid zonder enige variatie.
Variatie in de timing van muisbewegingen is bijzonder onthullend. Menselijke beweging heeft natuurlijke jitter op milliseconde-niveau. Gescripte beweging niet.
Timingpatronen van events
Echte gebruikers hebben variatie in reactietijd. De tijd tussen het laden van een pagina en een gebruiker die op een knop klikt, begint te typen of scrolt, is nooit perfect consistent, omdat die echte cognitieve verwerkingstijd weerspiegelt.
Bots voeren acties uit op nauwkeurige, herhaalbare intervallen. De timing tussen DOM-events van een geautomatiseerd script heeft een statistische signatuur die meetbaar afwijkt van door mensen gegenereerde event-stromen.
Interactie-entropie
Heeft de gebruiker de pagina echt gelezen voordat het formulier werd verzonden? Bewoog de cursor naar het veld voordat er een waarde in verscheen? Gingen er scroll-events aan de klik vooraf? Echte gebruikers laten een interactiespoor achter. Bots die direct naar het verzenden van het formulier springen zonder voorafgaande interactie, produceren een sessieprofiel met abnormaal lage entropie.
Waarom je alle drie de categorieën gecombineerd nodig hebt
Geen enkele categorie volstaat voor betrouwbare botdetectie in 2026. Netwerksignalen worden omzeild door residentiële proxy's, browservlaggen worden gepatcht door productiewaardige frameworks, en gedragssignalen hebben genoeg pagina-interactie nodig om betekenisvolle data op te leveren.
De combinatie is wat detectie laat standhouden. Een bot kan elke netwerkcontrole doorstaan, de voor de hand liggende browservlaggen patchen en zelfs plausibele interactietiming op een eenvoudige pagina produceren. Een geslaagd resultaat produceren over 250+ signalen tegelijk, waaronder van de GPU afgeleide canvas-entropie, natuurlijke micro-timingvariatie in muisbeweging en een TLS handshake fingerprint-TLS-fingerprint die overeenkomt met de opgegeven browser, is extreem moeilijk voor elkaar te krijgen op de automatiseringslaag.
cside combineert alle drie de categorieën in één API-respons. Eén aanroep levert een botscore afgeleid uit de volledige signaalset, een device-fingerprint-ID voor velocity-analyse en individuele signaaloordelen voor teams die eigen logica op de ruwe data willen bouwen.
Hoe AI-agents anders zijn
AI-agents zoals OpenAI Operator, Claude for Chrome, Playwright en Puppeteer vormen een specifieke detectie-uitdaging. Ze draaien in echt Chromium, dus doorstaan ze de meeste controles op browserniveau. Hun netwerkkenmerken zien er normaal uit en hun browser-API's zijn aanwezig en consistent.
Waar ze falen is gedrag op sessieniveau. AI-agents voltooien taken, ze browsen niet. Hun sessiecadans is taakgevormd: ga naar een specifiek element, voer een actie uit, ga naar de volgende stap. Echte menselijke sessies hebben verkenning, afdwalende aandacht, herlezingen en inconsistentie. Een agent-sessie is geoptimaliseerd en doelgericht op een manier die een statistisch onderscheidend profiel oplevert.
cside identificeert bij naam bekende AI-agents zoals OpenAI Operator, Claude for Chrome, Playwright, Puppeteer en Selenium via een mix van analyse van de browseromgeving en signaturen van de sessiecadans. Het levert een realtime oordeel dat AI-agent- en geautomatiseerde sessies markeert als onderdeel van de API-respons.
Zet botdetectie in je kritieke flows
Botdetectie is niet één controle. Het is een samengesteld geheel van netwerk-, browser- en gedragssignalen die samen worden gescoord tegen een consistente fingerprint. cside levert dat samengestelde oordeel in één API-aanroep, inclusief detectie van bij naam bekende AI-agents, zodat je het in je aanmeld-, inlog- of checkout-flow kunt draaien. cside AI-agentdetectie en botdetectie draaien beide vanuit één script-tag, en de gratis laag dekt 1.000 API-aanroepen per maand zonder creditcard.








