Smart Signals to serwerowe sygnały wzbogacające, obliczane na podstawie fingerprintów przeglądarki, danych IP intelligence oraz analizy behawioralnej. Dostarczają one pełnego kontekstu o każdym odwiedzającym, bez zbierania jakichkolwiek danych osobowych.
Smart Signals — wzbogacone sygnały decyzji, ryzyka, sieci i botów — docierają na Twój serwer dwiema drogami: są wysyłane do Ciebie jako webhooki (zobacz Webhooks) oraz można je odczytać na żądanie przez Data API. Są też prezentowane w panelu. Poniższe przykłady przetwarzają strukturę payloadu webhooka; te same pola pojawiają się przy odczycie sesji z API.
Wizyta przekłada się na 35+ smart signals dotyczących sieci, przeglądarki, urządzenia i zachowania. Poniższa dokumentacja wymienia te, po które sięgniesz najczęściej, w tym:
| Sygnał | Opis | Odpowiedź | Platforma |
|---|---|---|---|
| VPN Detection | Oznacza użycie VPN na podstawie IP intelligence | network.vpn: boolean | Web |
| Proxy Detection | Wykrywa użycie proxy datacenter oraz residential | network.proxy: boolean | Web |
| Tor Detection | Porównuje IP ze znanymi węzłami wyjściowymi Tor | network.tor: boolean | Web |
| Datacenter | Oznacza IP należące do znanych dostawców cloud/hosting | network.datacenter: boolean | Web |
| IP Geolocation | Geolokalizacja na poziomie miasta + ISP i ASN z adresu IP | geo.{ country, city, timezone }, network.{ isp, asn } | Web |
| Sygnał | Opis | Odpowiedź | Dostępność |
|---|---|---|---|
| Browser Tampering | Wykrywa sfałszowany User-Agent, zmodyfikowany navigator, wstrzykiwanie przez rozszerzenia | { result: boolean, anomalyScore: number } | Web |
| Antidetect Browsers | Ocenia buildy przeglądarek fałszujące fingerprint przez sondy CSS i właściwości | bot.antidetectScore: number (0–100, Pro+) | Web |
| Privacy Settings | Wykrywa konfiguracje przeglądarek nastawione na prywatność (Tor Browser, Brave, Firefox ETP, Safari ITP) | { result: boolean } | Web |
| Developer Tools | Wykrywa, gdy narzędzia DevTools przeglądarki są otwarte | { result: boolean } | Web — Business & Enterprise |
| Incognito | Wnioskuje o prywatnym przeglądaniu w Chromium, Firefoksie i Safari | identification.incognito: boolean | Web |
| Sygnał | Opis | Dostępność |
|---|---|---|
| Emulator | Wykrywa emulatory Androida (BlueStacks, Genymotion, Nox, Android SDK) przez renderer GPU i znaczniki UA | Web — wszystkie plany |
Detekcje tylko natywne. Wykrywanie roota, jailbreaku, sklonowanych/podwójnych aplikacji oraz instrumentacji Frida zależy od sygnałów, które może zebrać wyłącznie natywny mobilny SDK. TRACIO dostarcza SDK przeglądarkowe, więc w agencie webowym są one nieskuteczne — polegaj zamiast tego na werdyktach automatyzacji, headless, antidetect, emulatora i analizy behawioralnej.
| Sygnał | Opis | Odpowiedź | Platforma |
|---|---|---|---|
| Bot Detection | Wykrywa frameworki automatyzacji oraz przeglądarki headless | bot.result: "human"|"bot"|"uncertain", bot.type: string, bot.score: number | Web |
| Risk Score | Zagregowane ryzyko żądania, w obiekcie webhooka decision | decision.riskScore: number, decision.suspectScore: number, decision.action: "real"|"fake"|"suspicious" | Web |
Flagi VPN, proxy, Tor oraz datacenter są ustalane po stronie serwera na podstawie
adresu IP odwiedzającego, z wykorzystaniem komercyjnych baz IP intelligence (IP2Location /
MaxMind). Publiczny payload webhooka udostępnia połączone wyniki jako wartości boolean
w obiekcie network — network.vpn, network.proxy, network.tor,
network.datacenter — bez rozbicia na poszczególne metody ani łańcucha ufności. Zobacz
IP Intelligence, aby uzyskać szczegóły.
Prywatne przeglądanie jest wnioskowane w Chromium, Firefoksie i Safari i trafia do
Ciebie jako identification.incognito. Nie istnieje API przeglądarki, które by o tym
informowało, więc werdykt powstaje z ważonego głosowania nad tym, jak zachowuje się
storage w oknie prywatnym — swój udział mają błędy origin private file system,
trwałość storage oraz specyfika poszczególnych platform.
To sygnał probabilistyczny, a nie pewnik: traktuj go jako jedną z kilku przesłanek, a
nie jako fakt, na podstawie którego można działać samodzielnie. Ponieważ okna
prywatne blokują też cookie _vid_t, wizyta w trybie incognito jest identyfikowana
wyłącznie na podstawie sygnałów, a jej identification.confidence jest odpowiednio
niższa.
Detektor tampering identyfikuje odwiedzających, którzy zmodyfikowali swoją przeglądarkę, aby zafałszować swoją tożsamość:
navigator przez porównanie prototypów getterówPluginArray.prototype oraz MimeType.prototypeFunction.prototype.toString, Object.getOwnPropertyDescriptor i inne krytyczne funkcje zostały zastąpione przez ProxyanomalyScore (0.0–1.0) kwantyfikuje stopień niespójności. Wartości powyżej 0.5 wskazują na znaczącą manipulację.
Obiekt webhooka decision niesie zagregowane ryzyko żądania:
decision.riskScore (liczba całkowita 0–100), decision.suspectScore (liczba) oraz
decision.action (zalecane działanie). Wynik agreguje wyjścia smart signals; poniższe
przedziały opisują, jak riskScore odwzorowuje się na poziomy ryzyka:
| Zakres wyniku | Poziom ryzyka | Typowe wskaźniki |
|---|---|---|
| 0-10 | Normalny | Czyste sygnały, znany odwiedzający, residential IP |
| 11-30 | Niski | Drobne niespójności, IP datacenter lub pierwsza wizyta |
| 31-60 | Średni | Wykryty VPN, manipulacja przeglądarką lub nietypowa velocity |
| 61-80 | Wysoki | Wiele sygnałów ryzyka, proxy + tampering, wysoka aktywność |
| 81-100 | Krytyczny | Wykryty bot, węzeł wyjściowy Tor lub poważne anomalie |
Wynik agreguje aktywne wyjścia smart signals — przede wszystkim IP intelligence (VPN/proxy/Tor/datacenter), werdykt bota oraz manipulację przeglądarką. Potwierdzona interakcja człowieka (mysz/klawiatura) obniża wynik.
Wykrywane są cztery konfiguracje przeglądarek nastawionych na prywatność:
| Przeglądarka | Metoda wykrywania | Próg |
|---|---|---|
| Tor Browser | Zablokowany canvas + zablokowany WebGL + strefa czasowa UTC + ograniczone fonty + zaokrąglony rozmiar ekranu | 3+ markery |
| Brave | UA Brave lub navigator.brave lub marka „Brave” w Client Hints | 1+ marker |
| Firefox ETP (strict) | Partycjonowany storage lub przeciwdziałanie canvas (wymagany UA Firefoksa) | 1+ marker |
| Safari ITP | Zablokowane cookies lub ograniczony IndexedDB (wymagany UA Safari) | 1+ marker |
Smart Signals docierają na Twój serwer przez payload webhooka (zobacz Webhooks, aby poznać pełną strukturę oraz weryfikację podpisu) oraz przy odczycie sesji przez Data API. Poniższe przykłady odczytują pola bezpośrednio z payloadu webhooka; nazwy pól są w obu przypadkach takie same.
// `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}