Gli Smart Signals sono segnali di arricchimento server-side calcolati a partire dai fingerprint del browser, dalla IP intelligence e dall'analisi comportamentale. Forniscono un contesto approfondito su ogni visitatore senza raccogliere alcuna informazione di identificazione personale.
Gli Smart Signals — i segnali arricchiti di decisione, rischio, rete e bot — raggiungono il suo server per due vie: le vengono inviati come webhook (vedi Webhooks) e sono leggibili su richiesta tramite la Server API. Sono inoltre resi visibili nella dashboard. Gli esempi qui sotto consumano la struttura del payload del webhook; gli stessi campi compaiono leggendo una sessione dall'API.
Una visita si risolve in 35+ smart signal che coprono rete, browser, dispositivo e analisi comportamentale. Il riferimento qui sotto elenca quelli a cui ricorrerà più spesso, tra cui:
| Segnale | Descrizione | Risposta | Piattaforma |
|---|---|---|---|
| VPN Detection | Segnala l'uso di VPN dalla IP intelligence | network.vpn: boolean | Web |
| Proxy Detection | Identifica l'uso di proxy datacenter e residenziali | network.proxy: boolean | Web |
| Tor Detection | Confronta l'IP con i nodi di uscita Tor noti | network.tor: boolean | Web |
| Datacenter | Segnala IP appartenenti a provider cloud/hosting noti | network.datacenter: boolean | Web |
| IP Geolocation | Geolocalizzazione a livello di città + ISP e ASN dall'IP | geo.{ country, city, timezone }, network.{ isp, asn } | Web |
| Segnale | Descrizione | Risposta | Disponibilità |
|---|---|---|---|
| Browser Tampering | Rileva User-Agent falsificato, navigator modificato, iniezione di estensioni | { result: boolean, anomalyScore: number } | Web |
| Antidetect Browsers | Assegna un punteggio alle build di browser che falsificano il fingerprint tramite sonde CSS e property | bot.antidetectScore: number (0–100, Pro+) | Web |
| Privacy Settings | Rileva configurazioni di browser orientate alla privacy (Tor Browser, Brave, Firefox ETP, Safari ITP) | { result: boolean } | Web |
| Developer Tools | Rileva quando i DevTools del browser sono aperti | { result: boolean } | Web — Business & Enterprise |
| Incognito | Inferisce la navigazione privata su Chromium, Firefox e Safari | identification.incognito: boolean | Web |
| Segnale | Descrizione | Disponibilità |
|---|---|---|
| Emulator | Rileva emulatori Android (BlueStacks, Genymotion, Nox, Android SDK) tramite renderer GPU e marcatori UA | Web — tutti i piani |
Rilevamenti solo nativi. Il rilevamento di root, jailbreak, app clonate/duplicate e strumentazione Frida dipende da segnali che solo un SDK mobile nativo può raccogliere. TRACIO distribuisce SDK per browser, quindi questi rilevamenti non sono efficaci nell'agente web: si affidi piuttosto ai verdetti su automazione, headless, antidetect, emulatore e comportamento.
| Segnale | Descrizione | Risposta | Piattaforma |
|---|---|---|---|
| Bot Detection | Identifica framework di automazione e browser headless | bot.result: "human"|"bot"|"uncertain", bot.type: string, bot.score: number | Web |
| Risk Score | Rischio aggregato per la richiesta, nell'oggetto decision del webhook | decision.riskScore: number, decision.suspectScore: number, decision.action: "real"|"fake"|"suspicious" | Web |
I flag di VPN, proxy, Tor e datacenter vengono risolti lato server dall'IP del
visitatore utilizzando database commerciali di IP intelligence (IP2Location /
MaxMind). Il payload pubblico del webhook espone i risultati combinati come booleani
sull'oggetto network — network.vpn, network.proxy, network.tor,
network.datacenter — senza suddivisione per metodo o stringa di confidenza. Vedi
IP Intelligence per i dettagli.
La navigazione privata viene inferita su Chromium, Firefox e Safari e le arriva come
identification.incognito. Non esiste alcuna API del browser che la segnali, quindi
il verdetto nasce da un voto ponderato sul comportamento dello storage in una finestra
privata: gli errori dell'origin private file system, la durabilità dello storage e le
peculiarità di ciascuna piattaforma contribuiscono ognuna per la propria parte.
È un segnale probabilistico, non una certezza: lo tratti come uno dei vari input e non
come un fatto su cui agire da solo. Poiché le finestre private sopprimono anche il
cookie _vid_t, una visita in incognito viene identificata solo dai segnali e la sua
identification.confidence è di conseguenza più bassa.
Il rilevatore di manomissione (tampering) identifica i visitatori che hanno modificato il proprio browser per travisare la propria identità:
navigator confrontando i prototipi dei getterPluginArray.prototype e MimeType.prototypeFunction.prototype.toString, Object.getOwnPropertyDescriptor e altre funzioni critiche sono state sostituite con ProxyL'anomalyScore (0.0-1.0) quantifica il grado di incoerenza. Valori superiori a 0.5 indicano una manomissione significativa.
L'oggetto decision del webhook trasporta il rischio aggregato per una richiesta:
decision.riskScore (intero 0-100), decision.suspectScore (numero) e
decision.action (l'azione consigliata). Il punteggio aggrega gli output degli smart
signal; le fasce qui sotto descrivono come riskScore si mappa sui livelli di rischio:
| Intervallo del punteggio | Livello di rischio | Indicatori tipici |
|---|---|---|
| 0-10 | Normale | Segnali puliti, visitatore noto, IP residenziale |
| 11-30 | Basso | Incoerenze minori, IP datacenter o prima visita |
| 31-60 | Medio | VPN rilevata, manomissione del browser o velocità insolita |
| 61-80 | Alto | Più segnali di rischio, proxy + manomissione, attività elevata |
| 81-100 | Critico | Bot rilevato, nodo di uscita Tor o anomalie gravi |
Il punteggio aggrega gli output attivi degli smart signal — principalmente la IP intelligence (VPN/proxy/Tor/datacenter), il verdetto sui bot e la manomissione del browser. L'interazione umana confermata (mouse/tastiera) abbassa il punteggio.
Vengono rilevate quattro configurazioni di browser orientate alla privacy:
| Browser | Metodo di rilevamento | Soglia |
|---|---|---|
| Tor Browser | Canvas bloccato + WebGL bloccato + fuso orario UTC + font limitati + dimensioni schermo arrotondate | 3+ marcatori |
| Brave | UA Brave o navigator.brave o brand "Brave" nei Client Hints | 1+ marcatore |
| Firefox ETP (strict) | Storage partizionato o canvas resistito (UA Firefox richiesto) | 1+ marcatore |
| Safari ITP | Cookie bloccati o IndexedDB limitato (UA Safari richiesto) | 1+ marcatore |
Gli Smart Signals raggiungono il suo server tramite il payload del webhook (vedi Webhooks per la struttura completa e la verifica della firma) e leggendo una sessione dalla Server API. Gli esempi qui sotto leggono i campi direttamente dal payload del webhook; i nomi dei campi sono gli stessi in entrambi i casi.
// `payload` is the webhook delivery body (/docs/webhooks)const score = payload.decision.riskScoreconst isVPN = payload.network.vpnconst isBot = payload.bot.result === "bot"
if (isBot) { return block("Automated access")}
if (score > 60) { return requireMFA()}
if (isVPN && score > 30) { return requireCaptcha()}
return allow()// `payload` is the webhook delivery body (/docs/webhooks)function computeFraudRisk(payload: WebhookPayload): string { let risk = "low"
if (payload.decision.riskScore > 60) risk = "high" else if (payload.decision.riskScore > 30) risk = "medium"
// Escalate when multiple network signals agree if (payload.network.vpn && payload.network.proxy) risk = "high" if (payload.network.tor) risk = "high" if (payload.bot.result === "bot") risk = "high"
return risk}