Controlli JS lato client
La documentazione descrive SCaptcha 2.3.0. Le funzioni dipendenti dalla configurazione sono indicate separatamente.
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.
Pipeline decisionale
Durante l’apertura della pagina, SCaptcha traccia telemetria di interazione: conteggi e ampiezza dei movimenti mouse/touch, bounding box, entropia della direzione, varianza di velocità e intervalli, presenza e uniformità dello scroll, conteggio clic, tempo di hover, inattività della tastiera dopo 15 s, cambi di visibilità e tempo della prima interazione (<500 ms).
Al clic, il client valuta indicatori di automazione ad alta confidenza come navigator.webdriver, HeadlessChrome nello UA, globali di automazione (__webdriver_evaluate, _phantom, ecc.), indicatori di brand UA per Playwright/Puppeteer e una blocklist di sottostringhe per pattern IA/crawler.
I controlli ambientali vengono eseguiti solo se attivati. API assenti o limitate per la privacy restano neutrali; renderer generici Chromium/ANGLE, Mesa o llvmpipe non indicano da soli automazione.
I segnali di fingerprint e timing (tempo canvas toDataURL sotto 5 ms, hash di fingerprint WebGL e conteggio estensioni, hash OfflineAudioContext, uniformità della cadenza requestAnimationFrame) sono campionati per sessione per ridurre la stabilità e poi combinati nel punteggio.
Soglie e risultati
Se la confidenza >= botThreshold, l’azione di escalation configurata (sfida o blocco) viene eseguita immediatamente. Se la confidenza >= challengeThreshold, la sfida di fallback viene mostrata a meno che l’escalation non sia impostata su none.
Il blocco imposta uno stato di errore e registra il motivo; la sfida apre l’overlay di fallback collegato al payload PoW.
La modalità Under‑Attack alza le soglie e rilassa i requisiti di gesto affinché gli utenti legittimi possano passare rapidamente durante i picchi di traffico.
Controlli di comportamento e UX
Il movimento del puntatore vale solo per il mouse e lo scorrimento solo per pagine scorrevoli; tastiera e touch legittimi non devono simulare il mouse.
La telemetria include conteggi e ampiezza dei movimenti, entropia della direzione, tempo di hover, conteggio clic, tempo della prima interazione (<500 ms) e inattività della tastiera dopo 15 s.
Escalation e logging
L’escalation scrive un elenco di motivi e il punteggio di confidenza nel payload analitico per permetterLe di verificare esattamente perché una sessione è stata messa alla sfida o bloccata.
L’escalation verso la sfida richiede il fallback con immagine/audio basato su codice. Il server conserva sfida e token di prova in sessione per 5 minuti, e il PoW è accettato solo quando il token di prova corrisponde.
L’escalation al blocco interrompe la verifica e registra l’esito nei log delle richieste. Eventi client come escalation, challenge e verified sono salvati nel payload JS per supportare analisi di dettaglio.
Note di accessibilità
Se il Suo pubblico usa solo la tastiera o viste incorporate, allenti i requisiti di scroll o puntatore e si affidi maggiormente ai segnali di timing o di ambiente.
Disattivi i controlli audio o WebGL per browser bloccati o estensioni di privacy rigorose per evitare falsi positivi.
Preferisca l’escalation a sfida rispetto al blocco quando l’accessibilità o la diversità dei dispositivi è elevata.
La modalità floating può migliorare l’UX del modulo, ma la testi con screen reader e zoom perché il posizionamento dell’ancora può influenzare l’ordine del focus.
Analisi e conservazione
L’analisi delle richieste è attiva per impostazione predefinita e può memorizzare dati operativi collegabili: IP, user agent, richiesta, rete, posizione, motivi e telemetria inviata. La conservazione predefinita è 90 giorni, regolabile da 1 a 3.650. Disattivarla non elimina righe o esportazioni esistenti.