Verificări JS pe partea clientului
Documentația descrie SCaptcha 2.3.0. Funcțiile dependente de configurare sunt marcate separat.
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 decizional
Cât timp pagina este deschisă, SCaptcha urmărește telemetria interacțiunii: număr și amplitudine a mișcărilor mouse/touch, bounding box, entropie de direcție, variație de viteză și interval, prezență și uniformitate a scroll‑ului, număr de clicuri, timp de hover, inactivitate a tastaturii după 15 s, schimbări de vizibilitate și timing al primei interacțiuni (<500 ms).
La clic, clientul evaluează markeri de automatizare cu semnal ridicat precum navigator.webdriver, HeadlessChrome în UA, globale de automatizare (__webdriver_evaluate, _phantom, etc.), indicatori de brand UA pentru Playwright/Puppeteer și o listă de blocare de subșiruri pentru modele AI/crawler.
Verificările de mediu rulează doar când sunt activate. API-urile indisponibile sau restricționate pentru confidențialitate rămân neutre; randările generice Chromium/ANGLE, Mesa sau llvmpipe nu indică singure automatizare.
Semnalele de amprentă și timing (timp canvas toDataURL sub 5 ms, hash de amprentă WebGL și număr de extensii, hash OfflineAudioContext, uniformitatea cadenței requestAnimationFrame) sunt eșantionate per sesiune pentru a reduce stabilitatea și apoi integrate în scor.
Praguri și rezultate
Dacă încrederea >= botThreshold, acțiunea de escaladare configurată (provocare sau blocare) rulează imediat. Dacă încrederea >= challengeThreshold, provocarea de fallback este afișată, cu excepția cazului în care escaladarea este setată pe none.
Blocarea setează o stare de eroare și înregistrează motivul; provocarea deschide overlay‑ul de fallback legat de payloadul PoW.
Modul Under‑Attack ridică pragurile și relaxează cerințele de gesturi astfel încât utilizatorii legitimi să poată trece rapid în timpul vârfurilor de trafic.
Controale de comportament și UX
Mișcarea pointerului se aplică doar mouse-ului, iar derularea doar paginilor derulabile; utilizarea legitimă a tastaturii sau atingerii nu trebuie să simuleze mouse-ul.
Telemetria include număr și amplitudine de mișcare, entropie de direcție, timp de hover, număr de clicuri, timing al primei interacțiuni (<500 ms) și inactivitate a tastaturii după 15 s.
Escaladare și logare
Escaladarea scrie o listă de motive și scorul de încredere în payloadul de analitice pentru a putea verifica exact de ce o sesiune a fost provocată sau blocată.
Escaladarea către provocare solicită fallback‑ul imagine/audio bazat pe cod. Serverul stochează provocarea și tokenurile de dovadă în sesiune timp de 5 minute, iar PoW este acceptat doar când tokenul de dovadă se potrivește.
Escaladarea către blocare oprește verificarea și înregistrează rezultatul în logurile de cereri. Evenimentele client precum escalation, challenge și verified sunt stocate în payloadul JS pentru analiză detaliată.
Note de accesibilitate
Dacă publicul dumneavoastră este doar pe tastatură sau folosește vizualizări încorporate, relaxați cerințele de scroll sau pointer și bazați‑vă mai mult pe semnalele de timing sau de mediu.
Dezactivați verificările audio sau WebGL pentru browsere blocate sau extensii stricte de confidențialitate pentru a evita alarmele false.
Preferați escaladarea către provocare în locul blocării atunci când accesibilitatea sau diversitatea dispozitivelor este ridicată.
Modul floating poate îmbunătăți UX‑ul formularelor, dar testați‑l cu cititoare de ecran și zoom deoarece plasarea ancorei poate afecta ordinea focusului.
Analiză și retenție
Analiza cererilor este activată implicit și poate stoca date operaționale corelabile: IP, user-agent, cerere, rețea, locație, motive și telemetrie trimisă. Retenția este implicit 90 de zile și poate fi setată între 1 și 3.650. Dezactivarea nu șterge rândurile sau exporturile existente.