स्ट्राइलोबोट (हिन्दी (Hindi))

स्ट्राइलोबोट

Monday, 08 December 2025

//

20 minute read

स्कॉपर्स वास्तविक उपयोगकर्ताओं की नकल करने के लिए AI का प्रयोग शुरू करने के बारे में हैं, इसलिए मैंने एक बोट डिटेक्टर बनाया जो सीखता है

भाग पढ़ें 2: कैसे बोट्स स्मार्ट हो गए - बोट पता लगाने में नया सीमांत

👉 See It Live यह वास्तविक उत्पादन प्रणाली है जो आपके अनुरोध को एक मिलीसेकेंड में पता लगाता है।

प्रमुख संकल्पना: व्यवहारिक रूटिंग यह एक नया वर्ग सक्षम करता है - जहां पारदर्शी , समायोज्य | " |teams \ " detectors और सीखने वाली प्रणालियों को सीखा गया व्यवहार पैटर्नों पर आधारित प्रतिक्रियात्मक रूप से ट्रैफिक को मार्ग दिखाता है YARP गेटवेबॉट्स कभी भी आपके बैकएण्ड तक नहीं पहुँचते

न्यूगेटGenericName जिटहब डॉकर


यह क्यों है

बोट पता लगाना आधुनिक वेब इंजीनियरिंग में सबसे कठिन समस्याओं में से एक है

समस्या अभी बदली है तीन साल पहले , आप उपयोक्ता पर रेगेक्स के साथ बोटों को ब्लॉक कर सकते थे बड़े पैमाने पर वास्तविक उपयोगकर्ता व्यवहार को अनुकरण करने के लिए बड़ी भाषा मॉडलों ने इसे शून्य बना दियाएक एलएलएम1powered scraper doesn’t'it just blindly request the same path repeatedly. It understands your site structure,It adapts when blocked,And requests pages in realistic order.It is indistinguishable from a human except in aggregate behavior.

  • परिवर्तित आवासीय प्रतिनिधि
  • पूरी तरह से वैध ब्राउज़र अंगुल छापें
  • वास्तविक माउस गति
  • जावास्क्रिप्ट चला रहा है
  • जब अवरोधित किया जाता है तब अनुकूलन

वाणिज्यिक समाधान इस समस्या को हल करता है।

मैं कुछ अलग करना चाहता था

  • खोलें - आप पढ़ सकते हैं
  • स्थानीय - नहीं
  • समझदार - स्पष्ट निर्णय
  • विस्तारित करने में आसान - अपने विशिष्ट खतरे सतह के लिए अनुकूल डिटेक्टर जोड़ें
  • चलाने के लिए सस्ते सीपीयू
  • के लिए बनाया गया v4 आधुनिक LLM को संभालता है

तो मैंने बनाया स्टिलियोबोटName एक मॉड्यूलर के लिए सीखने वाले बोट पता लगाने की इंजन

यह सरल शुरू हुआ और फिर बहुत अधिक रोचक चीज़ में विकसित हो गया



एक ठोस उदाहरण (यह वास्तव में क्या पकड़ता है

यह एक वास्तविक है

एक scraper spoofs:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120

वैध दिखता है

लेकिन यह भूल जाता है एक हेडर Chrome हमेशा भेजता है:

Sec-Fetch-Mode

और इसके Accept-Language हेडर नहीं matches claimed locale

और अनुरोध दर स्पष्ट रूप से स्वचालित है

एक संकेत ठीक है

सिस्टम इसे milliseconds के नीचे चिह्नित करता है

यह संपूर्ण डिजाइन का आधार है एक बड़े पर निर्भर नहीं करें


प्रणाली का दर्शन

इस परियोजना के मूल में , यह वास्तव में बोट पता लगाने के बारे में नहीं है यातायात को एक जीवित प्रणाली के रूप में देखना एक अलग-अलग अनुरोधों की धारा के बजाय

यह अब क्यों महत्वपूर्ण है LLM-powered bots are't dumbMSC2 They adaptM SK3 An LLM bot hits your APIMST4 gets rateMst5limitedMSt6 changes UserM st7AgentM ST8 rotates IPM St9 requests related products Mstr10like a human wouldM str11 then systematically extracts dataMrstr12 Static rules canMtr13t keep upMrr14 But an adaptive system canRstr15

आधुनिक scrapers जीवों की तरह व्यवहार करते हैं। वे सीखते हैं।

यहाँ दर्शन सरल है

  1. कई संकेतों को देखें - UAM SK1 शीर्षिकाएं, IPMSC3 व्यवहारिक नमूनेMST4 क्रॉस
  2. इनका संयोजन करें एक संकेत पर विश्वास नहीं करता
  3. उनके बीच बातचीत करें - एक पूर्ण यूए संदिग्ध है यदि आईपी डाटा सेंटर है
  4. समय के साथ अनुकूलन - नमूने नष्ट हो जाते हैं।

एक एकल के बजाय "bot/notM SK2bot"checkMSC4 इंजन बन जाता है छोटे डिटेक्टरों का एक नेटवर्कप्रत्येक साझे निर्णय में योगदान करता है।

यह सिस्टम बनाया गया है कि पारदर्शीदीर्घकालिक लक्ष्य के साथ , कम एक फायरवाल की तरह व्यवहार करने और अधिक एक प्रतिरक्षा प्रणालीकिनारे पर तेजी से:,,में बुद्विमान और हमेशा सीखने वाला


क्यों एकल | - | चिह्न पता लगाने में असफल होता है |( | और StyloBot इसे कैसे बचाता है )

अधिकांश प्रणालियां एक या दो संकेतों पर निर्भर करती हैं

  • यदि उपयोक्ता कहता है तो "ब्लॉक करें आधुनिक बोट वास्तविक उपयोक्ता का उपयोग करते हैं
  • यदि दर है तो ब्लॉक करें Intelligent bots throttle
  • यदि आईपी डाटा सेंटर में है तो ब्लॉक करें → आवासीय प्रॉक्सी नेटवर्कों में वास्तविक घरेलू आईएसपी है
  • यदि जावास्क्रिप्ट नहीं करता है तो ब्लॉक करें → हेडलेस ब्राउज़र JS को पूर्ण रूप से अच्छी तरह निष्पादित करते हैं

पैटर्न कोई भी एकल संकेत बनाया जा सकता है समाधान एक संकेत पर निर्भर नहीं करें

स्टेलोबोट कई कमजोर संकेतों को एक मजबूत निर्णय में सम्मिलित करता है अधिक डेटा केंद्र आईपी अधिक गुम सुरक्षा शीर्षिकाएँ अधिक अनुरोध दर असामान्यताएँ अधिक cross-layer inconsistency


यह कैसे काम करता है (छोटे संस्करण

कई छोटे डिटेक्टरों के माध्यम से अनुरोध प्रवाह

इसे हवाई अड्डे की सुरक्षा के रूप में सोचें।

flowchart TB
    subgraph Request["Incoming Request"]
        R[HTTP Request]
    end

    subgraph FastPath["Fast Path (< 100ms)"]
        UA[User-Agent Check]
        HD[Header Analysis]
        IP[Datacenter IP Lookup]
        RT[Rate Anomalies]
        HE[Heuristic Model]
    end

    subgraph SlowPath["Slow Path (Async Learning)"]
        LLM[LLM Reasoning]
        Learn[Weight Learning]
    end

    subgraph Output["Decision"]
        Score[Risk Score 0-1]
        Action[Allow / Throttle / Block]
    end

    R --> UA & HD & IP & RT
    UA & HD & IP & RT --> HE
    HE --> Score --> Action

    HE -.-> LLM -.-> Learn
    Learn -.->|updates weights| HE

    style FastPath stroke:#10b981,stroke-width:2px
    style SlowPath stroke:#6366f1,stroke-width:2px
    style Output stroke:#f59e0b,stroke-width:2px

त्वरित पथ

समक्रमिक रूप से चलाता है

  • ज्ञात बोट पैटर्न
  • गुम हेडर वास्तविक ब्राउज़र हमेशा भेजें
  • डेटा केंद्र आईपी (AWS/AzureM SK2GCPMSC3
  • दर स्पाइक
  • यूए + शीर्षिकाओं के बीच असंगतताएं

यह पकड़ता है 80% bots instantly

धीमी पथ

पृष्ठभूमि में चलाता है

  • सीखी हुई भारों के साथ हीरिस्टिक मॉडल
  • एलएलएम तर्क के माध्यम से ओलामाCity name (optional, probably does not need a translation)
  • पैटर्न प्रतिष्ठा अद्यतन कर रहा है
  • अस्थिर संकेत भूल जा रहा है

यह अनुकूलन bots - सबसे अधिक लोगों को पकड़ता है सोचना वे उपयोक्ता पर "regex के साथ पकड़ रहे हैं


इसे 10 सेकेंड में प्रयास करें

स्थानीय संस्थापन

dotnet add package Mostlylucid.BotDetection
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddBotDetection();

var app = builder.Build();
app.UseBotDetection();
app.Run();

यह है

इसे पहली बार देखो

अभी भी स्थापित नहीं करना चाहते हैं स्टिलियोबोट का अवलोकन करें उत्पादन प्रणाली को कार्य में देखना।


क्या पता लगाता है (एक नज़र में

जाँचें क्या यह पाता है
उपयोगकर्ता-अभिकर्ता ज्ञात बॉट्स
शीर्षिका गुम सुरक्षा शीर्षिकाएँ
आईपी क्लाउड होस्ट जो अपने को गृह उपयोगकर्ता बनाते हैं
दर स्वचालन बर्स्ट्स
सुसंगतता Chrome के बिना

सटीकता स्लीपर विशेषता है - आधुनिक बोट स्पॉफ कर सकते हैं एक संकेत लेकिन आमतौर पर क्रॉस में असफल


एक वास्तविक पता लगाने का परिणाम (Broken Down

यहाँ क्या एक वास्तविक पता लगाना दिखता है - वास्तविक डेटा से stylobot.net आरंभिक के साथ उत्पादन में चल रहा है

सारांश

{
  "policy": "fastpath",
  "isBot": false,
  "isHuman": true,
  "humanProbability": 0.8,
  "botProbability": 0.2,
  "confidence": 0.76,
  "riskBand": "Low",
  "recommendedAction": { "action": "Allow", "reason": "Low risk (probability: 20%)" },
  "processingTimeMs": 50.7,
  "detectorsRan": ["UserAgent", "Ip", "Header", "ClientSide", "Behavioral", "Heuristic", "VersionAge", "Inconsistency"],
  "detectorCount": 8,
  "earlyExit": false
}

डिटेक्टर 8 में चलाया गया एकाधिक साक्ष्य स्रोतों में समानांतर निष्पादन

डिटेक्टर योगदान

प्रत्येक डिटेक्टर एक भारित प्रभाव का योगदान करता है

डिटेक्टर प्रभाव वज़न МSK3 भारित
उपयोक्ता अभिकर्ता अभिकर्ता सामान्य दिखाई देता है
शीर्षिका हेडर सामान्य दिखाई देते हैं
व्यवहारिक अनुरोध पैटर्न सामान्य दिखाई देते हैं
शल्यचिकित्सा -0.77 2.0 -1.54 मानव संभावना
क्लाइंट साइड फ़िंगरप्रिंट वैध प्रतीत होता है
संस्करण आयु ब्राउज़र
असंगतता कोई हेडर नहीं
आईपी स्थानीय होस्ट dev में तटस्थ

ह्रासीय डिटेक्टर यहाँ पर प्रभावी है - यहM SK1 इसकी भारित 2x और मानव विश्वास को प्राप्त करने के लिए उपयोग किया गया \16 विशेषताएँ

संकलित संकेत

प्रत्येक डिटेक्टर संकेतों का उत्सर्जन करता है जो ह्रासीय मॉडल में फीड करता है

{
  "ua.is_bot": false,
  "ua.raw": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...",
  "ip.is_local": true,
  "ip.address": "::1",
  "header.has_accept_language": true,
  "header.has_accept_encoding": true,
  "header.count": 16,
  "fingerprint.integrity_score": 1,
  "behavioral.anomaly": false,
  "heuristic.prediction": "human",
  "heuristic.confidence": 0.77,
  "versionage.analyzed": true
}

ये संकेत समय पर बने रहते हैं और सीखने वाली प्रणाली को प्रशिक्षित करते हैं

श्रेणी विभाजन

अंतिम निर्णय के लिए श्रेणी के आधार पर कुल प्राप्तियां

श्रेणी | अंक | | | भार || | नोट्स |----------|-------|--------|-------| | हेरिस्टिक | | | \ -1.54 | МSK3 | {\displaystyle \mathcal {4 | & quot;|,& quot ; सबसे मजबूत मानव संकेत | उपयोगकर्ता अभिकर्ता हेडर व्यवहारिक क्लाइंटसाइड संस्करण आयु असंगतता आईपी

कुल भारित अंक → मजबूत मानव संकेत

नोट यह डेमो है fastpath ऐसी नीति जो चलती है सभी दृश्यता के लिए डिटेक्टर . आरंभिक आउट सक्षम होने वाले वास्तविक उत्पादन में के तहत 10ms. यह यहाँ है क्योंकि डेमो मोड आरंभिक आउट को सभी योगदानों को दिखाने के लिए अक्षम करता है

LLM के साथ पूरा पाइपलाइन (डेमो मोड

तुलना के लिए, यहाँ demo नीति - LLM तर्क सहित पूरी पाइपलाइन असहमत होना:

{
  "policy": "demo",
  "isBot": false,
  "isHuman": true,
  "humanProbability": 0.87,
  "botProbability": 0.13,
  "confidence": 1.0,
  "botType": "Scraper",
  "riskBand": "Low",
  "recommendedAction": { "action": "Allow", "reason": "Low risk (probability: 13%)" },
  "processingTimeMs": 1370,
  "aiRan": true,
  "detectorsRan": ["UserAgent", "Ip", "Header", "ClientSide", "Behavioral",
                   "VersionAge", "Inconsistency", "Heuristic", "HeuristicLate", "Llm"],
  "detectorCount": 10
}

सेकंड में 10 детектор - एलएलएम चला और असहमत गुर्दे के साथ

डिटेक्टर प्रभाव वज़न МSK3 भारित
एलएलएम +0.85 2.5 +2.13 क्रें
ग्रीष्मकालीन सभी प्रमाणों के साथ मानव
शल्यचिकित्सा मानव संभाव्यता
उपयोक्ता अभिकर्ता अभिकर्ता सामान्य दिखाई देता है
शीर्षिका हेडर सामान्य दिखाई देते हैं
व्यवहारिक अनुरोध पैटर्न सामान्य दिखाई देते हैं
क्लाइंट साइड कोई अंगुली छाप नहीं
संस्करण आयु ब्राउज़र
असंगतता कोई हेडर नहीं
आईपी स्थानीय होस्ट

यह दिलचस्प मामला है - एलएलएम इसे एक संभावित बोट के रूप में चिह्नित किया जबकि सभी स्थिर डिटेक्टरों ने कहा मानव

{
  "ai.prediction": "bot",
  "ai.confidence": 0.85,
  "ai.learned_pattern": "Browser string suggests Chrome, common in bots. Presence of cookies and a specific referer also points to a potential bot."
}

LLM का तर्क एक सिग्नल के रूप में रिकॉर्ड किया जाता है जो सीखने की प्रणाली में फिर से फीड करता है

सूचना

  1. दो बार हियूरिस्टिक रन सभी डिटेक्टरों से पहले - आरंभिक ( सभी प्रमाणों के बाद ) & #44; और बाद में ( & #39; दोनों ने कहा कि ""\human"\ with '88%\ confidence.\

  2. एलएलएम असहमति इसका भारित प्रभाव आंशिक रूप से हीरिस्टिक प्रतिकूल होता है

  3. कोई औठाछाप नहीं ClientSide ने returned 0 because JS hadn

  4. अंतिम निर्णय: अनुमति दें LLM के साथ भी संदिग्धता के साथ-साथ संयुक्त साक्ष्य मानव के पक्ष में है botType: "Scraper" फ्लैग का अर्थ है यह देख रहा है

श्रेणी विभाजन तनाव को दर्शाता है

श्रेणी | अंक | | | भार || | नोट्स |----------|-------|--------|-------| | शल्यचिकित्सा Strong human signal | | एआई LLM का कहना है कि बोट उपयोगकर्ता अभिकर्ता हेडर व्यवहारिक क्लाइंटसाइड संस्करण आयु असंगतता आईपी

कुल भारित अंक मानव जीतता है, लेकिन एलएलएम का मतभेद चिह्नित किया गया है

प्रमुख अंतर्दृष्टि जब वे असहमत होते हैं, तब प्रमाणों को भारित किया जाता है और बहुसंख्यक जीतता है, लेकिन अल्पसंख्यक राय सीखने के लिए रिकॉर्ड की जाती है

महत्वपूर्ण यह verbose आउटपुट डेमो है।X-Bot-Confidence, X-Bot-RiskBand, आदि context.IsBot() जाँच करें. पूरा JSON त्रुटि सच्याना और अनुकूलन के लिए है


परिणाम का उपयोग

if (context.IsBot())
    return Results.StatusCode(403);

var score = context.GetBotConfidence();  // 0.0-1.0
var risk  = context.GetRiskBand();       // Low/Elevated/Medium/High

अंतिम बिन्दुओं को सुरक्षित करना

app.MapGet("/api/data", Secret).BlockBots();
app.MapGet("/sitemap.xml", Sitemap)
   .BlockBots(allowVerifiedBots: true);

जोखिम स्तर कार्य का मार्गदर्शन करते हैं

जोखिम | विश्वसनीयता | -------- | ---------- | ------------------ | कम | उन्नयनित | | 0.3-0.5 | || | लॉग | / | दर मध्यम उच्च


अभियांत्रिकी पता लगाना (वैकल्पिक

आवश्यक नहीं है - लेकिन उन्नत स्वचालन पकड़ने के लिए उपयोगी

शल्यचिकित्सा detector (Fast

सिस्टम में एक हियूरिस्टिक डिटेक्टर शामिल है जो गतिशील रूप से सीखे हुए वजनों के साथ लॉजिस्टिक रिग्रेसन का प्रयोग करता है

विशिष्ट लंबितता 1-5ms

{
  "BotDetection": {
    "AiDetection": {
      "Heuristic": {
        "Enabled": true,
        "LoadLearnedWeights": true,
        "EnableWeightLearning": true
      }
    }
  }
}

विशेषताएँ गतिशील रूप से निकाली जाती हैं - नए पैटर्न स्वचालित रूप से डिफ़ॉल्ट वजन प्राप्त करते हैं और समय के साथ सीखते हैं अपने यातायात

Ollama LLM (Deep Reasoning)

evasive bots को पकड़ता है जो तेजी से नियमों के लिए दिखते हैं ओलामाCity name (optional, probably does not need a translation) स्थानीय LLM निष्कर्ष के लिए.

ollama pull gemma3:1b
{
  "BotDetection": {
    "AiDetection": {
      "Provider": "Ollama",
      "Ollama": { "Model": "gemma3:1b" }
    }
  }
}

AI है असफल-safe यदि यह नीचे हो जाता है तो -


सीखने की प्रणाली

स्थिर ब्लॉक सूची अस्थिर हो जाती है तो यह प्रणाली सीखता है

flowchart LR
    N[Neutral] -->|repeated bad activity| S[Suspect]
    S -->|confirmed| B[Blocked]
    B -->|no activity| S
    S -->|stays clean| N

    style B stroke:#ef4444,stroke-width:2px
    style S stroke:#eab308,stroke-width:2px
    style N stroke:#10b981,stroke-width:2px

पैटर्न समय के साथ टूटते हैं

  • आईपी पुनः माना जाता है
  • गलत कॉन्फ़िगरेशन किए गए स्क्रिप्टों को निश्चित किया जाता है
  • यातायात स्वाभाविक रूप से बदलता है।

टूटने के बिना आप हमेशा के लिए वैध उपयोगकर्ताओं को अवरोधित करें

{
  "BotDetection": {
    "Learning": {
      "Enabled": true,
      "ScoreDecayTauHours": 168,
      "GcEligibleDays": 90
    }
  }
}

अपने अनुप्रयोग के लिए YARP गेटवे: किनारा संरक्षण

वहाँ’ भी है डोकर-पहली YARP उल्टी प्रॉक्सी जो खोज चलाता है पहले अनुरोध आपके एप्लिकेशन पर चिपकते हैं

flowchart LR
    I[Internet] --> G[YARP Gateway]
    G -->|Human| App[Your App]
    G -->|Search Engine Bot| App
    G -->|Malicious| Block[403]

इसे एक लाइन में चलाएँ

docker run -p 80:8080 \
  -e DEFAULT_UPSTREAM=http://your-app:3000 \
  scottgal/mostlylucid.yarpgateway

पर काम करता है

  • लिनक्स
  • मैकओएस
  • विंडोज़Comment
  • ARM (

अनुकूल रूटिंग के लिए

services:
  gateway:
    image: scottgal/mostlylucid.yarpgateway
    volumes:
      - ./yarp.json:/app/config/yarp.json

एक उचित उत्पादन कॉन्फ़िग

{
  "BotDetection": {
    "BotThreshold": 0.7,
    "BlockDetectedBots": true,
    "EnableAiDetection": true,
    "Learning": { "Enabled": true },
    "PathPolicies": {
      "/api/login": "strict",
      "/sitemap.xml": "allowVerifiedBots"
    }
  }
}

यह कहाँ जा रहा है

यह भाग है अगले भागों को गहराई में खोना

भावी रोडमैप

  • वैक्टर एम्बेडिंग के साथ RAG-आधारित पैटर्न मिलान
  • स्थानीय लघु मॉडल निष्कर्ष के माध्यम से लामाशर्प / ऑनिक्स
  • नवीन आक्रामक पैटर्नों को पहचानने के लिए सांकेतिक समानता

अगर आप एक बोट डिटेक्टर चाहते हैं तो आप कर सकते है समझना, बढ़ाना, और कहीं भी चलानायह श्रृंखला आपके लिए है


शैक्षिक & उद्योग पठन

अगर आप जानना चाहते हैं कि बोट पता लगाने में क्यों कठिन है और क्या अनुसंधान कहता है

बोट पता लगाना & Evasion

नेटवर्क फ़िंगरप्रिंटिंग

व्यवहार विश्लेषण & असामान्यता पहचान

LLM-Powered Threats & Data Poisoning

हेडレス ब्राउज़र पता लगाना


परियोजना लिंक


गैर लाइसेंस - सार्वजनिक डोमेन. आप चाहें जिस तरह इस्तेमाल करें

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.