This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Sunday, 15 February 2026
भाग 1 क्यों था
सैद्धांतिकता: स्टिलोबोट मॉडलों के बॉट पता लगाना एक प्रगतिशील के रूप में, आरंभिकM SK2 व्यवहारिक संकेतों की बाहरी टोपोलॉजी के साथ-साथ प्रतिक्रिया परिणामों को प्राप्त करने और सीमाबद्ध काल स्मृति संरक्षण अभियान संदर्भ में वापस भेजने के लिए
यदि आपके पास मूल्य निर्धारण है तो यह बड़े पैमाने पर फसल कटाई बंद करने के बारे में है।
स्टेलोबोट को क्या अलग करता है
- व्यवहारिक, नियम नहीं
- प्रगतिशील पहचान, पूर्ण विश्लेषण नहीं
- अभियान-aware
- वास्तविक-time, बैच नहीं
भाग पढ़ें 1: StyloBot: Scrapers के विरुद्ध वापस लड़ना
भाग पढ़ें 3: संभव रूप से सरल और कोई भी सरल पूर्ण उत्पादन गेटवे के लिए कोड की दो लाइनें
👉 See It Live यह वास्तविक उत्पादन प्रणाली है आरंभिक चल रहा है
यह पोस्ट सेटअप और कॉन्फ़िगरेशन skips (covered in Part 1), focusing instead on the novel internals that set StyloBot apart
वास्तुकला में घुसने से पहले, खतरा को समझें।
बोट्स को श्रेणियों में शामिल किया जाता है
पहले तीन साल से मौजूद हैं चौथा है जहां गहराई महत्वपूर्ण है सामान्य वास्तविक लक्ष्यों में मूल्य आसूचना स्क्रैपिंग,Competitive Intelligence crawling, और मॉडल प्रशिक्षण के लिए डेटासेट कटाई. शामिल हैं
जेनरेशन |------------|--------|---------| | v1: आधारभूत एक ही आईपी | v2: हेडレス वास्तविक ब्राउज़र | v3: वितरित परिवर्तित आईपी | v4: LLM-Driven प्राकृतिक ब्राउजिंग पैटर्न
से jump v3 के लिए v 4: पुराने बोट नियमों या अनियमितता का पालन करते थे समझना आपकी साइट संरचना. एक LLM बोट उत्पाद ए को अनुरोध कर सकता है , फिर संबंधित उत्पाद बी और सी ( एक वास्तविक उपयोक्ता के समान ), फिर व्यवस्थित रूप से एक प्रशिक्षित मॉडल के लिए मूल्य निकालने के लिए अनुक्रम प्राकृतिक दिखता है, लेकिन समग्र उद्देश्य हानिकारक है
आप सोच सकते हैं कि
नहीं
संदर्भ पठन
अधिकांश बोट प्रणालियों में इनमें से एक या दो करता है।
यह निर्णय स्पष्ट करने योग्य बनाए रखने के दौरान उच्च बर्तावीय रिजोल्यूशन सक्षम करता है
flowchart LR
R[Request] --> W[Wave Contributors]
W --> A[Evidence Aggregation]
A --> S[Signature + Temporal Context]
S --> P[Probability, Confidence, Risk Band]
P --> X[Policy Action]
X --> Y[Response Outcome]
Y --> F[Response Feedback Loop]
F --> W
Wave contributors स्टेज्ड डिटेक्टर अवयव हैं
फीडबैक लूप को ध्यान दें
इस पाइपलाइन को उत्पादन में stylobot.net पर देखें एक अनुरोध प्रस्तुत करें और पाइपलाइन के माध्यम से उसका अनुसरण आरंभिक
प्रत्येक अनुरोध पर सभी डिटेक्टर चलाने के बजाय स्टेज्ड पाइपलाइनसबसे पहले तेजी से जाँचें चलती हैं। यदि वे किसी संदिग्ध बात को चिह्नित करें तो यह CPU पर खर्च करता है।
यह क्यों महत्वपूर्ण है आप पूर्ण विश्लेषण की लागत नहीं दे रहे हैं
services.AddSingleton<IContributingDetector, FastPathReputationContributor>();
services.AddSingleton<IContributingDetector, UserAgentContributor>();
services.AddSingleton<IContributingDetector, HeaderContributor>();
services.AddSingleton<IContributingDetector, IpContributor>();
services.AddSingleton<IContributingDetector, BehavioralContributor>();
services.AddSingleton<IContributingDetector, ResponseBehaviorContributor>();
services.AddSingleton<IContributingDetector, MultiLayerCorrelationContributor>();
services.AddSingleton<IContributingDetector, BehavioralWaveformContributor>();
services.AddSingleton<IContributingDetector, ClusterContributor>();
services.AddSingleton<IContributingDetector, SimilarityContributor>();
services.AddSingleton<IContributingDetector, LlmContributor>();
services.AddSingleton<IContributingDetector, HeuristicLateContributor>();
यह तेज पथ लटेनसी को कम रखता है जबकि गहरा विश्लेषण तभी सक्षम करता है जब आरंभिक संकेतों द्वारा गारंटी दी जाती है
अधिकतर उत्पादन बोट पता सेवाएं v यंत्रित करता है।
| समाधान | तक संभालता है & #44; | लागत पर रोकता है। | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| साधारण दर सीमा मुक्त (OSS | ||||||||||||||||||||
| AWS WAF + आईपी प्रतिष्ठा | vM SK1v2 | v\3 | 5 | 6 | month | 7 | per | 8 | request fees | 9 | GeoIP | 10 | known | 11 | bad IP lists | 12 | No behavioral modeling | 13 | 14 | |
| क्लाउडफ्लेर बोट प्रबंधन | vM SK1v3 | v+4 \partiallyMSC6 | \ | ~$250-1000/\month \ | \ TLS fingerprinting | {\displaystyle TLS Fingerprinting,} ,\ JS challenge | & #44; ,\ behavioral scoring (आचारिक अंकगणना) | |||||||||||||
| Imperva/Incapsula à¤à¥à¤°à¥à¤ | ||||||||||||||||||||
| डेटाडोम | vM SK1v3 | v+4 \partiallyMSC6 | ~$5000-25000/ | year | | Real | - | time ML scoring | |||||||||||||
| अकमै बोट प्रबंधक | vM SK1v3 | v+4 \partiallyMSC6 | ~$10000-50000+/ | year | ( | custom | ) | |||||||||||||
| ओपन सोर्स (failMSC1ban,etcM SK3 | vMNK5 | v\MNK7 | Free \ (OSSMRK10\ |\ Log \ -\based IP blocking | . | No real \ -\time request instrumentation | . | | | ||||||||||||||
| स्टिलियोबोटName उपरोक्त सभी प्रतिक्रिया रिबैकबैक लूप्स + transition modeling + signature memory + cluster convergence LLM |
लागत वास्तविकता जाँच
प्रमुख अंतर्दृष्टि अधिकतर उद्यम समाधान (CloudflareM SK1Imperva,AkamaiMSC3v\3detectionके लिए मजबूत हैं।
वे गलत नहीं हैं, '—They handle the market that existed in लेकिन एलएलएम बोट्स ने खेल को बदल दिया।
शेष डाक पाइपलाइन में प्रत्येक तंत्र के माध्यम से चलता है
स्टेलोबोट प्रतिक्रिया व्यवहार रिकॉर्ड करता है और इसे एक ही क्लाइंट हस्ताक्षर के लिए आने वाले अनुरोध निर्णय में फोल्ड करता है
private async Task RecordResponseAsync(
HttpContext context,
AggregatedEvidence evidence,
ResponseCoordinator coordinator,
DateTime requestStartTime)
{
var ip = context.Connection.RemoteIpAddress?.ToString() ?? "unknown";
var ua = context.Request.Headers.UserAgent.ToString();
var clientId = $"{ip}:{GetHash(ua)}";
var signal = new ResponseSignal
{
RequestId = context.TraceIdentifier,
ClientId = clientId,
Timestamp = DateTimeOffset.UtcNow,
StatusCode = context.Response.StatusCode,
Path = context.Request.Path.Value ?? "/",
Method = context.Request.Method,
RequestBotProbability = evidence.BotProbability,
InlineAnalysis = false
};
await coordinator.RecordResponseAsync(signal, CancellationToken.None);
// Improve transition modelling with observed response content type
waveform?.UpdateResponseContentType(clientId, context.Response.ContentType);
}
ResponseBehaviorContributor जैसे संकेत जोड़ सकते हैं
/admin/secret.phpएक बोट जो इन की मांग करता है स्पष्ट रूप से हानिकारक हैयह पता लगाना एक में बदलता है बंद -लूप नियंत्रण प्रणाली: आप देखते हैं कि bot कैसे व्यवहार करता है बाद तुमने इसका जवाब दिया-, , और यह अगले अनुरोध के लिए आपकी स्कोरिंग बदलता है
तरंगरूप डिटेक्टर एक बनाता है संक्रमण मैट्रिक्स एक तालिका जो दिखाता है कि कितनी बार अनुरोध एक प्रकार से दूसरे में खिसकाते हैं
स्पष्ट भाषा में इसका अर्थ क्या है एक मार्कोव मॉडल ट्रैक करता है "आख़िर क्या होगा?" जो कुछ आपने अभी देखा था पर आधारित होता है।
var transitions = new int[3, 3];
var fromCounts = new int[3];
for (var i = 1; i < classes.Count; i++)
{
var from = (int)classes[i - 1];
var to = (int)classes[i];
transitions[from, to]++;
fromCounts[from]++;
}
var pageToAsset = (double)transitions[(int)ContentClass.Page, (int)ContentClass.Asset]
/ fromCounts[(int)ContentClass.Page];
var pageToPage = (double)transitions[(int)ContentClass.Page, (int)ContentClass.Page]
/ fromCounts[(int)ContentClass.Page];
तब यह संदिग्ध संक्रमण आकार चिह्नित करता है
if (pageToPage > 0.7 && pageCt >= 5)
contributions.Add(DetectionContribution.Bot(
Name, "Waveform", 0.6,
$"Scraper pattern: {pageToPage:P0} of page requests lead to another page",
weight: 1.5,
botType: BotType.Scraper.ToString()));
लाल झंडा यदि पृष्ठ अनुरोधों का 70% सीधे दूसरे पृष्ठ पर जाता है, तो वास्तविक ब्राउज़र की तरह आस्तियों को लाने के बजाय ( यह एक बोट हस्ताक्षर है।
प्रत्येक अनुरोध पर सभी डिटेक्टर चलाने के बजाय स्टेज्ड पाइपलाइनसबसे पहले तेजी से जाँचें चलती हैं। यदि वे किसी संदिग्ध बात को चिह्नित करें तो यह CPU पर खर्च करता है।
यह क्यों महत्वपूर्ण है आप पूर्ण विश्लेषण की लागत नहीं दे रहे हैं
services.AddSingleton<IContributingDetector, FastPathReputationContributor>();
services.AddSingleton<IContributingDetector, UserAgentContributor>();
services.AddSingleton<IContributingDetector, HeaderContributor>();
services.AddSingleton<IContributingDetector, IpContributor>();
services.AddSingleton<IContributingDetector, BehavioralContributor>();
services.AddSingleton<IContributingDetector, ResponseBehaviorContributor>();
services.AddSingleton<IContributingDetector, MultiLayerCorrelationContributor>();
services.AddSingleton<IContributingDetector, BehavioralWaveformContributor>();
services.AddSingleton<IContributingDetector, ClusterContributor>();
services.AddSingleton<IContributingDetector, SimilarityContributor>();
services.AddSingleton<IContributingDetector, LlmContributor>();
services.AddSingleton<IContributingDetector, HeuristicLateContributor>();
यह तेज पथ लटेनसी को कम रखता है जबकि गहरा विश्लेषण तभी सक्षम करता है जब आरंभिक संकेतों द्वारा गारंटी दी जाती है
एक बोट अपने उपयोक्ता के बारे में झुठला सकता है
विचार जाँचें कि क्या bot' के दावे बहुविध स्तरों में संगत हैं
यदि आप 3+ लेयरों के बीच असमानता को देखते हैं, तो यह लगभग निश्चित रूप से एक बोट है।
var osMismatch = AnalyzeOsCorrelation(tcpOsHint, tcpWindowOsHint, userAgentOs, signals);
var browserMismatch = AnalyzeBrowserCorrelation(h2ClientType, userAgentBrowser, tlsProtocol, signals);
var tlsMismatch = AnalyzeTlsCorrelation(tlsProtocol, userAgentBrowser, signals);
var geoMismatch = AnalyzeGeoCorrelation(state, signals);
if (anomalyCount >= 3)
contributions.Add(DetectionContribution.Bot(
Name, "Correlation", 0.85,
$"Multiple layer mismatches detected ({anomalyCount}/{totalLayers})",
weight: 2.0,
botType: BotType.MaliciousBot.ToString()));
यह स्टैक में सबसे मजबूत ढलान प्रतिरोधी तंत्र है
स्टेलोबोट याद करता है कि प्रत्येक bot हस्ताक्षर ने हाल ही में क्या किया है घेरे हुए (canM SK1t grow forever) and आदेशित अद्यतन एक दूसरे में दौड़ नहीं कर सकते
यह क्यों कठिन है Imagine a bot keeps hitting your site from the same IP and User
स्टिलोबोट टीटीएल के साथ यह हल करता है
_signatureCache = new SlidingCacheAtom<string, SignatureTrackingAtom>(
async (signature, ct) => new SignatureTrackingAtom(signature, _options, _logger),
_options.SignatureTtl,
_options.SignatureTtl * 2,
_options.MaxSignaturesInWindow,
Environment.ProcessorCount,
10,
_signals);
_updateAtom = new KeyedSequentialAtom<SignatureUpdateRequest, string>(
req => req.Signature,
async (req, ct) => await ProcessSignatureUpdateAsync(req, ct),
Environment.ProcessorCount * 2,
1,
true,
_signals);
आप पर निर्णायक प्राप्त कर सकते हैं per-signature ordering,parallelism across signaturesM SK2 और स्वचालित TTL
स्टेलोबोट एकल पर नहीं रोकता।
ScraperXYZएक दूसरे को ढूंढने से विश्वास बढ़ता हैvar cluster = _clusterService.FindCluster(signature);
if (cluster != null)
{
signals[SignalKeys.ClusterType] = cluster.Type.ToString().ToLowerInvariant();
signals[SignalKeys.ClusterMemberCount] = cluster.MemberCount;
if (cluster.Type == BotClusterType.BotProduct)
contributions.Add(BotContribution(
"Cluster",
$"Part of bot product cluster '{cluster.Label}' ({cluster.MemberCount} members)",
confidenceOverride: ProductConfidenceDelta,
botType: "Scraper"));
}
var family = _signatureCoordinator.GetFamily(signature);
if (family != null && family.MemberSignatures.Count > 1)
{
contributions.Add(BotContribution(
"ConvergedFamily",
$"Part of converged family ({family.MemberSignatures.Count} members, {family.FormationReason})",
confidenceOverride: familyBoost));
}
यह सीमावर्ती यातायात के लिए पता लगाने की गुणवत्ता को बढ़ाता है बिना हर अज्ञात को अंधा रूप से बढाने के
मौजूदा क्लस्टरिंग उपयोग लेबल प्रसार एक नेटवर्क के माध्यम से रंगीन लेबल फैलाने की कल्पना करें लीडेन-style समुदाय सुधार पास समुदाय सीमाओं को बेहतर बनाने के द्वारा चीजों को साफ करता है
साधारण अंग्रेजी: आपके पास बॉट हस्ताक्षरों का एक आलेख है-,, जिसके किनारे समान चिह्नों को जोड़ते हैं। . लीडन एक एल्गोरिथ्म है जो यह पता लगाता है कि कौन से हस्ताक्षर स्वाभाविक रूप से एक साथ एकत्रित होते हैं।
यह क्यों महत्वपूर्ण है
उच्च स्तर प्रवाह
flowchart LR
V[Signature feature vectors] --> G[Weighted similarity graph]
G --> L[Leiden community optimization]
L --> R[Refinement and reassignment]
R --> C[Stable bot-network communities]
C --> P[Policy signals and dashboard labels]
शैली पास उपकूट
// Pseudocode for community refinement pass
var graph = BuildSimilarityGraph(signatureVectors);
var communities = Leiden.DetectCommunities(
graph,
resolution: 1.0,
seed: 42);
foreach (var community in communities)
{
var score = ComputeCommunityBotScore(community);
var temporal = ComputeTemporalDensity(community);
if (score >= botThreshold && temporal >= temporalThreshold)
EmitCluster(community, type: BotClusterType.BotNetwork);
}
यह महत्वपूर्ण है क्योंकि यह आपको स्थायी अभियान देता है
वर्तमान उत्पादन क्रियान्वयन विवरण के लिए
एमवीसी विशेषताएं परिचालन नियंत्रण विमान प्रदान करती हैं
[BotPolicy("strict")]
[BotAction("challenge", FallbackAction = "block")]
public IActionResult Checkout() => Ok();
[BotDetector("UserAgent,Header,Ip", BlockAction = BotBlockAction.Throttle)]
public IActionResult MultiDetector() => Ok();
ये क्या करते हैं आप व्यक्तिगत अंतबिंदुओं को सुरक्षा पोशाक के साथ चिह्नित करें जो उन्हें चाहिए।
विभिन्न नीतियों का प्रयास करें stylobot.net पर - परीक्षण strict, balanced, और permissive उत्पादन में नीतियों को एक-दूसरे के साथ देखें
सार्वजनिक स्थल भी एक उत्पादन है
flowchart LR
I[Internet] --> C[Caddy]
C --> G[Stylobot.Gateway]
C --> W[Website for SignalR hub route]
G --> W
W --> T[(TimescaleDB/PostgreSQL)]
G --> T
G --> O[Ollama optional]
इसे कैसे पढ़ा जा सकता है Caddy (reverse proxyM SK1 routes traffic. Some goes to the Gateway (which runs all bot detectionMSC4 some goes directly to the Website (for real-time telemetry dashboards\M SK7 Both can write to the database. The Gateway can optionally use Ollama (local AI models\MST10 for advanced analysis\MSP11
इस विभाजन का काम क्यों करता है
इन पांच विभेदकः-—=closed; -=loop detection;,=transition; MSC3=shape modeling; M SK4=temporal signature memory; ,=cross; MST6=layer correlation; MSP7=campaign, MST8=level cluster context; M ST9=deliver behavioral resolution that standard regex; M SP10+M SP11=rate, M SP12=limit systems cannot match
उन्हें कार्य में देखना चाहते हैं यहाँ जाएँ stylobot.net और उत्पादन में डिटेक्टर का परीक्षण।
यदि उपर्युक्त तकनीकी शब्दों को नया लगता है तो यहाँ कंप्यूटर विज्ञान और नेटवर्क सुरक्षा साहित्य के मानक संदर्भ हैं
यह पोस्ट वर्णनात्मक प्रदर्शन है
भाग 3 उत्पादन ट्यूनिंग को कवर करेगा : थ्रेसहोल्ड्स, गलतM SK3 सकारात्मक नियंत्रण
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.