JS‑controles aan de clientzijde
De documentatie beschrijft SCaptcha 2.3.0. Configuratieafhankelijke functies zijn afzonderlijk gemarkeerd.
Optional browser checks
Behavior checks are off by default. The code contains pointer, movement, and scrolling checks, plus optional canvas, WebGL, and audio routines. Evaluation happens in the browser; results can affect local scoring and SCaptcha logs. This documentation therefore makes no blanket no-fingerprinting claim.
Beslissingspipeline
Terwijl de pagina open staat, volgt SCaptcha interactietelemetrie: aantallen en spreiding van muis/touch‑bewegingen, bounding box, richtingsentropie, snelheids‑ en intervalvariantie, aanwezigheid en uniformiteit van scroll, klikcount, hoverduur, toetsenbordinactiviteit na 15 s, zichtbaarheidswijzigingen en timing van de eerste interactie (<500 ms).
Bij een klik beoordeelt de client hoog‑signaal automatiseringsmarkers zoals navigator.webdriver, HeadlessChrome in de UA, automatiseringsglobals (__webdriver_evaluate, _phantom, enz.), UA‑merkindicaties voor Playwright/Puppeteer en een substring‑blocklist voor AI/crawler‑patronen.
Omgevingscontroles draaien alleen na inschakeling. Ontbrekende of privacybeperkte API’s blijven neutraal; algemene Chromium/ANGLE-, Mesa- of llvmpipe-renderers gelden op zichzelf niet als automatisering.
Fingerprint‑ en timingsignalen (canvas toDataURL‑tijd onder 5 ms, WebGL‑fingerprint‑hash en extensietellingen, OfflineAudioContext‑hash, uniformiteit van requestAnimationFrame‑cadans) worden per sessie gesampled om stabiliteit te verminderen en vervolgens in de score verwerkt.
Drempels en uitkomsten
Als de betrouwbaarheid >= botThreshold, wordt de geconfigureerde escalatieactie (uitdaging of blokkering) direct uitgevoerd. Als de betrouwbaarheid >= challengeThreshold, wordt de fallback‑uitdaging getoond tenzij escalatie op none staat.
Blokkering zet een foutstatus en logt de reden; de uitdaging opent de fallback‑overlay die aan de PoW‑payload is gekoppeld.
Under‑Attack‑modus verhoogt drempels en versoepelt gebaarvereisten zodat legitieme gebruikers tijdens verkeerspieken snel kunnen slagen.
Gedrags- en UX‑controles
Aanwijzerbeweging geldt alleen voor muisinvoer en scrollen alleen op scrollbare pagina’s; legitieme bediening via toetsenbord of touch hoeft geen muis te simuleren.
Telemetrie omvat bewegingsaantallen en spreiding, richtingsentropie, hoverduur, klikcount, timing van de eerste interactie (<500 ms) en toetsenbordinactiviteit na 15 s.
Escalatie en logging
Escalatie schrijft een redenlijst en betrouwbaarheidsscore in de analytics‑payload zodat u precies kunt beoordelen waarom een sessie werd uitgedaagd of geblokkeerd.
Escalatie naar uitdaging vraagt de code‑gebaseerde image/audio‑fallback aan. De server bewaart de uitdaging en proof‑tokens 5 minuten in de sessie en PoW wordt alleen geaccepteerd wanneer de proof‑token overeenkomt.
Escalatie naar blokkering stopt de verificatie en registreert de uitkomst in verzoeklogs. Clientgebeurtenissen zoals escalatie, uitdaging en verified worden opgeslagen in de JS‑payload voor gedetailleerde analyse.
Toegankelijkheidsnotities
Als uw doelgroep alleen toetsenbord gebruikt of ingesloten weergaven heeft, versoepel dan scroll‑ of pointervereisten en leun meer op timing‑ of omgevingssignalen.
Schakel audio‑ of WebGL‑controles uit voor vergrendelde browsers of strikte privacy‑extensies om false positives te vermijden.
Geef voorkeur aan escalatie naar uitdaging boven blokkering wanneer toegankelijkheid of apparaatdiversiteit hoog is.
Floating‑modus kan de formulier‑UX verbeteren, maar test met screenreaders en zoom omdat ankerplaatsing de focusvolgorde kan beïnvloeden.
Analyse en bewaartermijn
Verzoekanalyse staat standaard aan en kan koppelbare operationele gegevens opslaan, waaronder IP, user-agent, verzoek-, netwerk- en locatievelden, redenen en verzonden telemetrie. De bewaartermijn is standaard 90 dagen en instelbaar van 1 tot 3.650. Uitschakelen verwijdert geen bestaande regels of exports.