Smart Signals सर्वर-साइड एनरिचमेंट सिग्नल्स हैं, जिन्हें ब्राउज़र फ़िंगरप्रिंट, IP intelligence और व्यवहार विश्लेषण से परिकलित किया जाता है। ये किसी भी व्यक्तिगत रूप से पहचान योग्य जानकारी को एकत्र किए बिना हर विज़िटर के बारे में गहरा संदर्भ प्रदान करते हैं।
Smart Signals — एनरिच किए गए decision, risk, network और bot सिग्नल्स — आपके सर्वर तक webhooks के माध्यम से पहुँचाए जाते हैं (देखें Webhooks) और डैशबोर्ड में दिखाए जाते हैं। नीचे दिए गए उदाहरण webhook payload के आकार का उपयोग करते हैं।
| Signal | Description | Response | Platform |
|---|---|---|---|
| VPN Detection | IP intelligence से VPN उपयोग को फ़्लैग करता है | network.vpn: boolean | Web, Mobile |
| Proxy Detection | Datacenter और residential proxy उपयोग की पहचान करता है | network.proxy: boolean | Web, Mobile |
| Tor Detection | IP का ज्ञात Tor exit nodes से मिलान करता है | network.tor: boolean | Web, Mobile |
| Datacenter | ज्ञात cloud/hosting प्रदाताओं की IPs को फ़्लैग करता है | network.datacenter: boolean | Web, Mobile |
| IP Geolocation | IP पते से शहर-स्तरीय geolocation + ASN | geo.{ country, city, lat, lon, timezone, isp } | Web, Mobile |
| Signal | Description | Response | Availability |
|---|---|---|---|
| Browser Tampering | स्पूफ़ किए गए User-Agent, संशोधित navigator, extension injection का पता लगाता है | { result: boolean, anomalyScore: number } | Web |
| Antidetect Browsers | CSS/property probes के माध्यम से antidetect browsers (Multilogin, GoLogin, Dolphin) का पता लगाता है | part of tampering / bot verdict | Web |
| Privacy Settings | गोपनीयता-केंद्रित ब्राउज़र कॉन्फ़िगरेशन (Tor Browser, Brave, Firefox ETP, Safari ITP) का पता लगाता है | { result: boolean } | Web |
| Developer Tools | पता लगाता है कि ब्राउज़र DevTools कब खुला है | { result: boolean } | Web — Business & Enterprise |
| Incognito (Safari) | iOS पर Safari प्राइवेट ब्राउज़िंग का अनुमान लगाता है | { result: boolean } | Web (Safari mobile) |
| Signal | Description | Availability |
|---|---|---|
| Virtual Machine | WebGL renderer/vendor, स्क्रीन और hardware concurrency के माध्यम से VMware/VirtualBox/Parallels/QEMU का पता लगाता है | Web — Enterprise |
| Emulator | GPU renderer और UA markers के माध्यम से Android emulators (BlueStacks, Genymotion, Nox, Android SDK) का पता लगाता है | Web — all plans |
केवल-नेटिव पहचानें (विकासाधीन)। Root, jailbreak, cloned/dual-app, Frida instrumentation और factory-reset पहचान उन सिग्नल्स पर निर्भर करती हैं जिन्हें केवल एक native mobile SDK ही एकत्र कर सकता है। ये आज केवल-वेब एजेंट में प्रभावी नहीं हैं। सामान्य क्रॉस-ब्राउज़र incognito पहचान (Chrome/Firefox) भी इसी तरह विकासाधीन है; वर्तमान में केवल Safari mobile प्राइवेट ब्राउज़िंग का ही अनुमान लगाया जाता है।
| Signal | Description | Response | Platform |
|---|---|---|---|
| Bot Detection | automation frameworks और headless browsers की पहचान करता है | bot.result: "human"|"bot"|"uncertain", bot.type: string, bot.score: number | Web, Mobile |
| Risk Score | webhook के decision ऑब्जेक्ट पर अनुरोध के लिए एकत्रित जोखिम | decision.riskScore: number, decision.suspectScore: number, decision.action: string | Web, Mobile |
VPN, proxy, Tor और datacenter फ़्लैग विज़िटर की IP से सर्वर-साइड पर वाणिज्यिक
IP intelligence डेटाबेस (IP2Location / MaxMind) का उपयोग करके हल किए जाते हैं।
सार्वजनिक webhook payload संयुक्त परिणामों को network ऑब्जेक्ट पर booleans के रूप में
प्रस्तुत करता है — network.vpn, network.proxy, network.tor,
network.datacenter — बिना किसी प्रति-विधि विश्लेषण या confidence स्ट्रिंग के। विवरण
के लिए देखें IP Intelligence।
विकासाधीन। सामान्य क्रॉस-ब्राउज़र incognito पहचान (Chrome/Firefox) अभी उपलब्ध नहीं है। TRACIO वर्तमान में केवल Safari mobile प्राइवेट ब्राउज़िंग का अनुमान लगाता है। आज किसी सामान्य
incognitoफ़्लैग पर निर्भर न रहें।
टैम्परिंग डिटेक्टर उन विज़िटर्स की पहचान करता है जिन्होंने अपनी पहचान को गलत तरीके से प्रस्तुत करने के लिए अपने ब्राउज़र को संशोधित किया है:
navigator गुणों को संशोधित करने वाले extensions का पता लगाता हैPluginArray.prototype और MimeType.prototype चेन को सत्यापित करता हैFunction.prototype.toString, Object.getOwnPropertyDescriptor और अन्य महत्वपूर्ण फ़ंक्शन Proxies से प्रतिस्थापित किए गए हैं या नहींanomalyScore (0.0-1.0) असंगति की मात्रा को परिमाणित करता है। 0.5 से अधिक मान महत्वपूर्ण टैम्परिंग को इंगित करते हैं।
webhook का decision ऑब्जेक्ट किसी अनुरोध के लिए एकत्रित जोखिम वहन करता है:
decision.riskScore (पूर्णांक 0-100), decision.suspectScore (संख्या) और
decision.action (अनुशंसित कार्रवाई)। यह स्कोर smart signal आउटपुट्स को एकत्रित करता
है; नीचे दिए गए बैंड बताते हैं कि riskScore जोखिम स्तरों से कैसे मैप होता है:
| Score Range | Risk Level | Typical Indicators |
|---|---|---|
| 0-10 | Normal | साफ़ सिग्नल्स, ज्ञात विज़िटर, residential IP |
| 11-30 | Low | मामूली असंगतियाँ, datacenter IP, या पहली विज़िट |
| 31-60 | Medium | VPN का पता चला, ब्राउज़र टैम्परिंग, या असामान्य velocity |
| 61-80 | High | कई जोखिम सिग्नल्स, proxy + टैम्परिंग, उच्च गतिविधि |
| 81-100 | Critical | Bot का पता चला, Tor exit node, या गंभीर विसंगतियाँ |
यह स्कोर सक्रिय smart-signal आउटपुट्स को एकत्रित करता है — मुख्य रूप से IP intelligence (VPN/proxy/Tor/datacenter), bot verdict और ब्राउज़र टैम्परिंग। पुष्ट मानव इंटरैक्शन (माउस/कीबोर्ड) स्कोर को कम करता है।
चार गोपनीयता-केंद्रित ब्राउज़र कॉन्फ़िगरेशन का पता लगाया जाता है:
| Browser | Detection Method | Threshold |
|---|---|---|
| Tor Browser | Canvas अवरुद्ध + WebGL अवरुद्ध + UTC timezone + सीमित fonts + गोलाकार screen size | 3+ markers |
| Brave | Brave UA या navigator.brave या Client Hints "Brave" brand | 1+ marker |
| Firefox ETP (strict) | Storage विभाजित या canvas प्रतिरोधित (Firefox UA आवश्यक) | 1+ marker |
| Safari ITP | Cookies अवरुद्ध या IndexedDB प्रतिबंधित (Safari UA आवश्यक) | 1+ marker |
Smart Signals आपके सर्वर तक webhook payload के माध्यम से पहुँचते हैं (पूर्ण आकार और signature verification के लिए देखें Webhooks)। नीचे दिए गए उदाहरण फ़ील्ड्स को सीधे उस payload से पढ़ते हैं।
// `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}