TRACIO का बॉट डिटेक्शन दो-परत वाली आर्किटेक्चर का उपयोग करके स्वचालित ब्राउज़र, हेडलेस टूल और स्क्रिप्टेड हमलों की पहचान करता है: ब्राउज़र एजेंट में क्लाइंट-साइड संग्रह और सर्वर-साइड विश्लेषण। यह मुख्यधारा के ऑटोमेशन फ़्रेमवर्क, हेडलेस ब्राउज़र, AI ब्राउज़िंग एजेंट और एंटी-डिटेक्ट ब्राउज़र को लगभग शून्य फ़ॉल्स पॉज़िटिव के साथ कवर करता है, और साथ ही वैध सर्च-इंजन क्रॉलर्स को स्वचालित रूप से allowlist में जोड़ता है।
ब्राउज़र एजेंट जांचों का एक व्यापक सेट चलाता है और उनके परिणाम रिपोर्ट करता है। सर्वर
पर इन परिणामों को भारित करके एक बॉट स्कोर बनाया जाता है, और स्कोर एक वर्डिक्ट से मैप
होता है। कुछ थोड़े-से स्पष्ट संकेतक अपने आप में निर्णायक होते हैं और बाकी सब कुछ चाहे
जो कहे, bot वर्डिक्ट लागू कर देते हैं।
कौन-सी जांचें चलती हैं, उन्हें कैसे भारित किया जाता है और थ्रेशोल्ड कहाँ हैं — यह किसी भी प्लान पर प्रकाशित नहीं किया जाता। इसे दस्तावेज़ में लिखने का मतलब होगा बॉट ऑपरेटरों को ठीक-ठीक बता देना कि सुरक्षा से बचने के लिए क्या बदलना है। इसके बदले आपको मिलता है वर्डिक्ट, बॉट-टाइप लेबल, और Business तथा उससे ऊपर के प्लान पर रीज़न कोड, जो निर्णय के पीछे मौजूद अवलोकन की श्रेणी बताते हैं।
हर पहचान के साथ एक बॉट वर्डिक्ट होता है। यह आप तक webhook पेलोड में
bot.result के रूप में और क्लाइंट SDK में result.bot के रूप में पहुँचता है।
| परिणाम | विवरण |
|---|---|
human | ऑटोमेशन का कोई संकेत नहीं मिला। सत्यापित सर्च-इंजन क्रॉलर भी human के रूप में हल होते हैं। |
bot | ऑटोमेशन या स्क्रिप्टेड एक्सेस का पता चला। इसके साथ एक bot.type लेबल आता है। |
uncertain | मिश्रित या कमज़ोर सिग्नल — न स्पष्ट रूप से मानव, न स्पष्ट रूप से स्वचालित। |
यह डैशबोर्ड और webhook पेलोड में इस्तेमाल होने वाले बिज़नेस फ़ील्ड decision.action
(real, fake या suspicious) से मैप होता है।
वर्डिक्ट के साथ bot.score आता है। webhook पेलोड वर्शन 2 में यह 0..100 का दशमलव है
— वही संख्या जो डैशबोर्ड उस विज़िट के लिए दिखाता है। (फ़्रीज़ किए गए वर्शन 1 स्कीमा में
यह 0..1 का अंश है; देखें Webhooks।)
bot.type तब मौजूद होता है जब परिणाम bot हो। यह या तो पहचाने गए बॉट या रनटाइम का
नाम होता है, या फिर एक परिवार, जब विशिष्ट जांच का नाम लेने से डिटेक्टर की आंतरिक
बनावट उजागर हो जाती:
bot.type | अर्थ |
|---|---|
playwright, jsdom, electron | नामित ऑटोमेशन रनटाइम की पहचान हुई |
browser_use, claude_computer_use, skyvern, genspark, fellou | नामित AI ब्राउज़िंग एजेंट की पहचान हुई |
automation | ऑटोमेशन टूलिंग, बिना विशिष्ट जांच का नाम लिए |
headless | बिना यूज़र इंटरफ़ेस के चल रहा ब्राउज़र |
antidetect | एंटी-डिटेक्ट / फ़िंगरप्रिंट-स्पूफ़िंग बिल्ड |
extension | ऑटोमेशन, प्रॉक्सी या VPN चलाने वाला ब्राउज़र एक्सटेंशन |
privacy_browser | प्राइवेसी-हार्डन्ड ब्राउज़र बिल्ड (उदाहरण के लिए Mullvad Browser) |
other | पता चला, लेकिन प्रकाशित शब्दावली के बाहर |
यह सूची जान-बूझकर बंद रखी गई है: कल डिटेक्टर में जुड़ने वाली जांच अपना आंतरिक नाम लीक
करने के बजाय other के रूप में सामने आएगी। bot.type को शाखा बनाने के लिए एक लेबल की
तरह लें, न कि ऐसे संपूर्ण enum की तरह जिसके विरुद्ध सत्यापन करना हो — समय के साथ नए
नामित रनटाइम जुड़ते रहते हैं।
Business और Enterprise प्लान पर webhook पेलोड में एक reasons सरणी आती है — अधिकतम
आठ प्रविष्टियाँ, महत्व के क्रम में। कोड अवलोकन की श्रेणी बताता है, कभी भी उसके पीछे
की जांच नहीं:
| कोड | इसका क्या मतलब है |
|---|---|
automation_signature | ऑटोमेशन टूलिंग के निशान |
headless_browser | बिना यूज़र इंटरफ़ेस वाला ब्राउज़र |
anonymous_browser | सामान्य दिखने के लिए बनाया गया प्राइवेसी-हार्डन्ड या एंटी-डिटेक्ट बिल्ड |
privacy_hardening | आक्रामक प्राइवेसी सेटिंग्स |
behavior_anomaly | गैर-मानवीय इंटरैक्शन पैटर्न |
fingerprint_tampering | जिन मानों को आपस में मेल खाना चाहिए, वे मेल नहीं खाते |
environment_anomaly | रनटाइम एनवायरनमेंट आंतरिक रूप से असंगत है |
identity_mismatch | घोषित पहचान और जो देखा गया, उनमें मतभेद है |
virtual_environment | भौतिक हार्डवेयर के बजाय एमुलेटर |
strong_automation_evidence | स्पष्ट बॉट संकेतक — अपने आप में निर्णायक |
detection_signal | अन्य जांचें जो ट्रिगर हुईं |
severity का मान high, medium या low होता है, और यह इस विज़िट में वर्डिक्ट का
वह हिस्सा है जो इस श्रेणी के कारण बना — न कि कोड की कोई स्थायी विशेषता। वही कोड एक
विज़िट पर high और दूसरी पर low आ सकता है, इसलिए इसे स्थिरांक की तरह कैश न करें।
privacy_hardening पर विशेष ध्यान दें: यह चोरी-छिपे बचने की कोशिशों जितना ही आम
प्राइवेसी-सचेत विज़िटर्स पर भी ट्रिगर होता है। इसे अकेले आधार बनाने के बजाय बाकी संकेतों
के साथ मिलाकर तौलें।
virtual_environment एमुलेटर डिटेक्शन से आता है। वेब पर "हाइपरवाइज़र के नीचे चल रहा
है" जैसा कोई अलग वर्डिक्ट नहीं है: ब्राउज़र को जो सुराग दिख सकते हैं — कोई सामान्य
सॉफ़्टवेयर रेंडरर, असामान्य रूप से कम कोर संख्या — वे बिना GPU ड्राइवर वाली आम मशीनों
पर और रिमोट-डेस्कटॉप सत्रों के भीतर भी उतनी ही बार दिखते हैं, इसलिए हम उन्हें ऐसा
वर्डिक्ट नहीं बनाते जिस पर आपको दोबारा शक करना पड़े।
| क्षमता | उपलब्धता |
|---|---|
| ऑटोमेशन, हेडलेस और AI-एजेंट डिटेक्शन | सभी प्लान |
| सत्यापित क्रॉलर allowlisting | सभी प्लान |
| एमुलेटर डिटेक्शन | सभी प्लान |
एंटी-डिटेक्ट संकेतक (bot.antidetectScore, 0..100) | Pro और उससे ऊपर |
| रीज़न कोड, व्यवहार ब्लॉक | Business और उससे ऊपर |
| DevTools डिटेक्शन | Business और उससे ऊपर |
एंटी-डिटेक्ट स्कोरिंग अभी भी कैलिब्रेट की जा रही है।
bot.antidetectScoreइसलिए दिया जाता है कि आप उसे देख सकें और अपनी नीति ट्यून कर सकें — इसे ब्लॉक करने के अकेले कारण के बजाय अपने जोखिम-निर्णय के एक इनपुट की तरह लें।
केवल-मोबाइल जांचें वेब पर प्रभावी नहीं हैं। Root, jailbreak, cloned/dual-app और Frida डिटेक्शन नेटिव सिग्नलों पर निर्भर हैं, जिन्हें ब्राउज़र एकत्र नहीं कर सकता। TRACIO केवल ब्राउज़र SDK उपलब्ध कराता है, इसलिए ऑटोमेशन, हेडलेस, AI-एजेंट, एंटी-डिटेक्ट, एमुलेटर और व्यवहार संबंधी वर्डिक्ट पर भरोसा करें, जो वेब पर पूरी तरह सक्रिय हैं।
ज्ञात अच्छे बॉट पहले उनके user-agent से पहचाने जाते हैं और फिर कनेक्ट कर रहे IP के विरुद्ध सत्यापित किए जाते हैं — उस IP पर रिवर्स DNS लुकअप, यह जांच कि परिणामी होस्टनेम ऑपरेटर के डोमेन का है, और एक फ़ॉरवर्ड लुकअप जो पुष्टि करता है कि वह उसी IP पर हल होता है। यही सत्यापन प्रक्रिया क्रॉलर ऑपरेटर स्वयं प्रकाशित करते हैं।
| क्रॉलर | सत्यापित डोमेन |
|---|---|
.googlebot.com, .google.com | |
| Bing | .search.msn.com |
| Apple | .applebot.apple.com |
| Yahoo | .crawl.yahoo.net |
| Yandex | .yandex.com, .yandex.net, .yandex.ru |
| DuckDuckGo | .duckduckgo.com |
सत्यापित क्रॉलर human के रूप में हल होता है। जो अनुरोध खुद को Googlebot बताता है
जबकि उसका IP स्पष्ट रूप से किसी और का है, उसे बॉट के रूप में वर्गीकृत किया जाता है —
लुकअप का महज़ न मिलना या टाइमआउट हो जाना स्पूफ़िंग का प्रमाण नहीं माना जाता।
इंटरैक्शन की गतिकी — पॉइंटर की गति, कीबोर्ड की लय, स्क्रॉलिंग — वर्डिक्ट में इस बात के
प्रमाण के रूप में जाती है कि कोई मानव मौजूद है या नहीं, न कि यह कि वह कौन-सा मानव
है। Business और उससे ऊपर पर यह समुच्चय webhook के behavior ब्लॉक में दिया जाता है:
{ "behavior": { "score": 87, "verdict": "human", "confidence": 0.92 }}score 0..100 तक जाता है (जितना अधिक, उतना अधिक मानव-सदृश), verdict human,
uncertain या bot होता है, और confidence (0..1) बताता है कि वर्डिक्ट कितने
प्रमाण पर टिका है — दो पॉइंटर मूवमेंट वाली छोटी विज़िट यहाँ कम स्कोर पाती है, भले ही
वर्डिक्ट निर्णायक लगे।
यह ब्लॉक केवल तभी मौजूद होता है जब उस विज़िट के लिए व्यवहार स्कोरिंग वास्तव में चली हो। ब्लॉक का न होना "कोई डेटा नहीं" का मतलब है, कभी भी "कुछ भी संदिग्ध नहीं" का नहीं — इसकी अनुपस्थिति को साफ़ सिग्नल की तरह न पढ़ें।
क्लाइंट SDK एक सुविधाजनक बूलियन result.bot.detected देता है, साथ ही 0..100 स्केल पर
एक confidence:
const result = await tracio.getResult()
if (result.bot.detected) { console.warn(`Bot detected (confidence ${result.bot.confidence})`) showCaptcha() return}
await login(credentials)अपने सर्वर पर webhook डिलीवरी के आधार पर कार्रवाई करें। बॉट वर्डिक्ट
bot ऑब्जेक्ट में रहता है — bot.result और bot.type:
// `event` is the webhook delivery body (/docs/webhooks)app.post("/webhook/tracio", async (req, res) => { const event = req.body
if (event.bot?.result === "bot") { await db.blockedRequests.insert({ visitorId: event.visitorId, botType: event.bot.type, ip: event.ip, timestamp: new Date(), }) }
res.status(200).send("OK")})शून्य और खाली मान पेलोड से हटा दिए जाते हैं, इसलिए bot.type को अपने स्कीमा में
अनिवार्य बनाने के बजाय सावधानी से पढ़ें।
TRACIO का बॉट डिटेक्शन लगभग शून्य फ़ॉल्स पॉज़िटिव के लिए डिज़ाइन किया गया है, फिर भी किनारे के मामले मौजूद हैं:
| परिदृश्य | जोखिम | शमन |
|---|---|---|
navigator को बदलने वाले ब्राउज़र एक्सटेंशन | कम | कई जांचों में क्रॉस-वैलिडेशन किसी एक जांच से ट्रिगर होने से रोकता है |
| कॉर्पोरेट सुरक्षा सॉफ़्टवेयर | बहुत कम | हेडलेस वर्गीकरण के लिए पुष्टि करने वाले प्रमाण चाहिए |
| एक्सेसिबिलिटी टूल | कोई नहीं | एक्सेसिबिलिटी API बॉट डिटेक्शन में योगदान नहीं करते |
| VPN/प्रॉक्सी उपयोगकर्ता | कोई नहीं | नेटवर्क फ़्लैग बॉट वर्डिक्ट से अलग ट्रैक किए जाते हैं |
यदि आपको फ़ॉल्स पॉज़िटिव दिखें, तो bot.type (और Business तथा उससे ऊपर पर reasons)
देखें ताकि समझ सकें कि किस श्रेणी का अवलोकन ट्रिगर हुआ, फिर अपनी नीति समायोजित करें।
सामान्य कारणों के लिए देखें समस्या-निवारण।