Smart Signals är serversidiga berikningssignaler som beräknas utifrån webbläsarfingeravtryck, IP-intelligence och beteendeanalys. De ger djup kontext om varje besökare utan att samla in några personuppgifter.
Smart Signals — de berikade besluts-, risk-, nätverks- och botsignalerna — levereras till din server via webhooks (se Webhooks) och visas i dashboarden. Exemplen nedan konsumerar webhook-payloadens form.
| Signal | Beskrivning | Response | Plattform |
|---|---|---|---|
| VPN Detection | Flaggar VPN-användning utifrån IP-intelligence | network.vpn: boolean | Web, Mobile |
| Proxy Detection | Identifierar datacenter- och residential-proxyanvändning | network.proxy: boolean | Web, Mobile |
| Tor Detection | Matchar IP:n mot kända Tor-exit-noder | network.tor: boolean | Web, Mobile |
| Datacenter | Flaggar IP:n som tillhör kända moln-/hostingleverantörer | network.datacenter: boolean | Web, Mobile |
| IP Geolocation | Geolokalisering på stadsnivå + ASN från IP-adressen | geo.{ country, city, lat, lon, timezone, isp } | Web, Mobile |
| Signal | Beskrivning | Response | Tillgänglighet |
|---|---|---|---|
| Browser Tampering | Upptäcker förfalskade User-Agents, modifierad navigator, extension-injektion | { result: boolean, anomalyScore: number } | Web |
| Antidetect Browsers | Upptäcker antidetect-webbläsare (Multilogin, GoLogin, Dolphin) via CSS-/egenskapsprober | del av tampering-/botutlåtandet | Web |
| Privacy Settings | Upptäcker integritetsfokuserade webbläsarkonfigurationer (Tor Browser, Brave, Firefox ETP, Safari ITP) | { result: boolean } | Web |
| Developer Tools | Upptäcker när webbläsarens DevTools är öppna | { result: boolean } | Web — Business & Enterprise |
| Incognito (Safari) | Härleder privat surfning i Safari på iOS | { result: boolean } | Web (Safari mobil) |
| Signal | Beskrivning | Tillgänglighet |
|---|---|---|
| Virtual Machine | Upptäcker VMware/VirtualBox/Parallels/QEMU via WebGL-renderer/-vendor, skärm och hardware concurrency | Web — Enterprise |
| Emulator | Upptäcker Android-emulatorer (BlueStacks, Genymotion, Nox, Android SDK) via GPU-renderer och UA-markörer | Web — alla planer |
Detekteringar endast för native (under utveckling). Root-, jailbreak-, klonad/dubbel-app-, Frida-instrumenterings- och fabriksåterställningsdetektering bygger på signaler som endast ett native mobil-SDK kan samla in. De är inte effektiva i den enbart webbaserade agenten idag. Även allmän webbläsaröverskridande incognito-detektering (Chrome/Firefox) är under utveckling; för närvarande härleds endast privat surfning i Safari mobil.
| Signal | Beskrivning | Response | Plattform |
|---|---|---|---|
| Bot Detection | Identifierar automatiseringsramverk och headless-webbläsare | bot.result: "human"|"bot"|"uncertain", bot.type: string, bot.score: number | Web, Mobile |
| Risk Score | Aggregerad risk för förfrågan, på webhook-objektet decision | decision.riskScore: number, decision.suspectScore: number, decision.action: string | Web, Mobile |
VPN-, proxy-, Tor- och datacenter-flaggor löses upp på serversidan från
besökarens IP med hjälp av kommersiella IP-intelligence-databaser (IP2Location /
MaxMind). Den publika webhook-payloaden exponerar de kombinerade resultaten som booleaner
på network-objektet — network.vpn, network.proxy, network.tor,
network.datacenter — utan uppdelning per metod eller konfidenssträng. Se
IP Intelligence för detaljer.
Under utveckling. Allmän webbläsaröverskridande incognito-detektering (Chrome/Firefox) är ännu inte tillgänglig. TRACIO härleder för närvarande endast privat surfning i Safari mobil. Förlita dig inte på en allmän
incognito-flagga idag.
Tampering-detektorn identifierar besökare som har modifierat sin webbläsare för att felaktigt framställa sin identitet:
navigator-egenskaper genom att jämföra getter-prototyperPluginArray.prototype och MimeType.prototypeFunction.prototype.toString, Object.getOwnPropertyDescriptor och andra kritiska funktioner har ersatts med ProxiesanomalyScore (0.0–1.0) kvantifierar graden av inkonsekvens. Värden över 0.5 indikerar betydande manipulation.
Webhook-objektet decision bär den aggregerade risken för en förfrågan:
decision.riskScore (heltal 0–100), decision.suspectScore (tal) och
decision.action (den rekommenderade åtgärden). Poängen aggregerar utdata från
smart signals; banden nedan beskriver hur riskScore mappar till risknivåer:
| Poängintervall | Risknivå | Typiska indikatorer |
|---|---|---|
| 0-10 | Normal | Rena signaler, känd besökare, residential-IP |
| 11-30 | Låg | Mindre inkonsekvenser, datacenter-IP eller första besök |
| 31-60 | Medel | VPN upptäckt, webbläsarmanipulation eller ovanlig velocity |
| 61-80 | Hög | Flera risksignaler, proxy + manipulation, hög aktivitet |
| 81-100 | Kritisk | Bot upptäckt, Tor-exit-nod eller allvarliga anomalier |
Poängen aggregerar de aktiva smart-signal-utdata — främst IP-intelligence (VPN/proxy/Tor/datacenter), botutlåtandet och webbläsarmanipulation. Bekräftad mänsklig interaktion (mus/tangentbord) sänker poängen.
Fyra integritetsfokuserade webbläsarkonfigurationer detekteras:
| Webbläsare | Detekteringsmetod | Tröskel |
|---|---|---|
| Tor Browser | Canvas blockerad + WebGL blockerad + UTC-tidszon + begränsade typsnitt + avrundad skärmstorlek | 3+ markörer |
| Brave | Brave-UA eller navigator.brave eller Client Hints-varumärket ”Brave” | 1+ markör |
| Firefox ETP (strikt) | Storage partitionerad eller canvas-motstånd aktiverat (Firefox-UA krävs) | 1+ markör |
| Safari ITP | Cookies blockerade eller IndexedDB begränsad (Safari-UA krävs) | 1+ markör |
Smart Signals når din server via webhook-payloaden (se Webhooks för den fullständiga formen och signaturverifiering). Exemplen nedan läser fälten direkt från den payloaden.
// `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.suspectScore > 60) risk = "high" else if (payload.decision.suspectScore > 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}