# **StyloBot: 蝙蝠是如何有智能的\ - 植物探测新疆域 @(Part @MS K3**

*这是展示StyloBot所做的事在制片机堆叠中很罕见的场景。*

“SyloBot”模型机器人检测是进步的“,” 早期“MS K2” 行为信号的Exexit Astlogication@,,反应结果反馈到评分和捆绑的时间内存保存运动背景上 ” @.

如果您有定价“,”库存,或专有内容MS K2 这是关于阻止大型“- ”大规模收获 “( 价格情报’,竞争性爬动‘, AI训练在成为基线交通之前 ”“MS K8

> ### 是什么使得StyloBot不同
> 
> - 没有规则@- @ based
> - 渐进检测=,}未进行全面分析
> - @-_aware,}没有请求@-_aver
> - 未批量@ label

**[读取部分 @1:StyloBot:反制狙击手](https://www.mostlylucid.net/blog/botdetection-introduction)**

**[读取“尽可能简单,不简单”的部件@3:](https://www.mostlylucid.net/blog/botdetection-part3-as-simple-as-possible)** “-”两行完整的生产网关代码“.”

**[“👉”请看Live :StyloBot.net。](https://stylobot.net)** @- 这是在网关上运行的 早期-exit 检测内线的真实生产系统\ ( 测量内线@; 延缓度因政策而异,并启用波浪+).

<!--category-- ASP.NET, Bot Detection, Security, Architecture -->
<datetime class="hidden">2026-02-15T10:30</datetime>

[![Nuget 元数](https://img.shields.io/nuget/v/mostlylucid.botdetection.svg)](https://www.nuget.org/packages/mostlylucid.botdetection/)
[![吉特胡布](https://img.shields.io/github/stars/scottgal/stylobot?style=social)](https://github.com/scottgal/stylobot)
[![嵌入器](https://img.shields.io/docker/pulls/scottgal/stylobot-gateway)](https://hub.docker.com/r/scottgal/stylobot-gateway)

---


[TOC]

---


## Part {2} 上下文

此文章跳过设置和配置“ (” 的配置, 包含在 & MS K1 部分中, 重心放在将 StyloBot 分隔为“ MPK2” 的新颖内部 。 @ info: tooltip

---


## 为什么我们在这里 新的植物疆界

在跳进建筑前 , @understand the threats@.}这是关于屏蔽简单的刮船的

### Bots 实际上做什么

Bots 属于类别@: @%

1. **蠢废物** (curil rolls,wget): 要求相同的路径 重复\ ,}相同的标题 *,}{可以预知的型態}{. 容易块MS K6
2. **无头浏览器** (Puppeteer,Playwright}):Mmic 真正的瀏覽器更能抓取資源@.}處理 JavaScriptMS K5}旋轉用戶 @-Agents.Harder{.}
3. **住宅代理网络**“:”来自真正家用 ISP IPs,}让地理定位校验失败 .}它们仍然有签名模式“,}但细微的.
4. **LLM - 动力机器人** (NEW):这些爬行在您的网站上, 同时保持连贯的对讲@-}类似访问模式 @. 他们理解上下文_. 它们模仿比例合法的浏览行为

前三个已经存在多年了 **第四是深度重要的地方 .** 共同的真实目标包括价格情报收集、竞争的情报采集和为示范培训收集数据

### 如何演化的博特多光学

-=YTET -伊甸园字幕组=- 翻译:
|------------|--------|---------|
| **v1: 基本** | IPQMK1 重复路径, 静态UA @| 限制速率{,} IP块_|
| **# 无头无脑#** @|_Real浏览器@,}JS 执行=,}资产获取 <{|}>行为率限制,}TLS指纹=Z|}
| **vó3: 分配** @ | 旋轉 IPs, 住宅代理 *, 不同时间 *\ MS K3 交叉 - layer international * , 签名内存 * MPK6
| **{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}** @(@NOW#) @ @ | @ 自然浏览模式 @ IMK3 @ 背景请求 @ , @ 混合合法切除 #+

**从V3跳到vMS K1** 旧机器人遵循规则或随机性@ . @ 新建机器人 *理解* 您的站点结构 @ ._ an LLMbot 可能要求产品 A,} 然后相关产品B和C (}就像一个真正的用户{),}然后系统抽取经过训练的模型=.}的价格 *序列顺序* 看上去自然 , *合计总用途* 属于恶意@. @%

### 为何这叫超杀

您可能会认为 @ : @ @ I" @ Isn@ MS K2# t检测到马尔科夫模式和集束聚合的大规模超工程,

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2款

1. **高级适应机器人运行成本昂贵** 培训成本: , API收费: I, GPU time=. 他们赢得了'垃圾申请 *高效率* 和 *目标对象*.
2. **他们模仿人类的模样 特别好** 恒定利率限制 Wonç't catch them @. 用户@-Agent check won{'工作=.你需要多-layer recern_,}响应}♪-bahavior lobs,和运动背景 <%.\}
3. **假阳性价格昂贵 @. @** 错误地屏蔽一个真正的用户@, @ and you lose them\ .StyloBot'}让您保持高度自信而不成为德拉科尼亚%. @
4. **攻击表面正在扩张** Scrapers不再只想要您的 HTML @.}他们想毒害您搜索索引@ , 提取专有算法=, 训练相互竞争的模型_, 或收割用户电子邮件@.

**参考阅读@:**

- [OWASP: 植物管理](https://owasp.org/www-community/attacks/Bot_attack)
- [Imperva: Bot 交通报告 * @2024](https://www.imperva.com/blog/bot-attack-trends/)
- [Cloudflare: 了解植物探测](https://www.cloudflare.com/learning/bots/what-is-bot-detection/)

---


## 核心建筑原则

大多数机体系统都使用其中一到两个“; ” 组合起来,在生产系统中仍然相对少见 “. ” 这个统一的想法是一种行为信号的表层学 逐渐地评估了“( 早期退出”\ ), 和闭路式“MS K6” 循环反馈以及连接的时间状态 使得运动结构能够出现“. ”

1. **早期-_exit 渐进分析@(_波图 @)** 更深入的分析只有在早期证据证明有必要时才会进行
2. **回应@- @side回馈循环** “→ 捕捉先进的适应性机器人如何根据您的响应改变行为 ” @(401/403, hrottling@,蜜罐).}
3. **crossó-- layer 相关性** @→_Correlates 身份要求@(_UA},_Geo)}针对网络真相的网络请求:#(_TCP_/{TLSMS K6_HTTP}2)}以便从物质上更难填充□.}
4. **带有约束时间状态的签名内存** @→_ 保持运动环境可见,
5. **过渡模式 @(Markov-}风格流 *)** “→”点察到看似人类的系统提取模式,
6. **运动群集** “→”将许多薄弱环节转换为“-”要求发出信号,

这样可以提高行为解析度, 同时又能保留可解释的决定@. @%

---


## 单一图片中的管道

```mermaid
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的生产中。](https://stylobot.net)** @- 提交请求并遵循此请求,

---


## 早期退出执行模型@( @Wave-}有条不紊的探测器图_)

而不是在每次请求中运行所有探测器@, @StyloBot使用 **分阶段输油管**“: 便宜”“, 快速检查先跑'. 只有当他们标记可疑时,它才会花费CPU来进行昂贵的‘, 更深入的分析’ @.

**为什么这重要?** 您没有支付任何无害用户的完整分析成本@( @ groupclutionups {,}_BARBAR_更深的关联},}LLM Heuristics*)}为每个无害用户提供#.}快速检查,消除明显的机器人即时=,}和早期□->exit保持了通畅交通的延缓度}%.}

```csharp
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>();
```

这保持了快速的-path lantency 低,同时只有在早期信号证明有必要时才能进行深度分析@.

---


### 现有Bot探测系统停止的地方

大部分的机器人生产检测服务处理 v1-v3}有效{.}这里>'}市场崩溃{MS K4}

“| 解决方案”“|”“手忙脚乱到 @|”“停止在#| 成本”“|”、“如何运作”
|----------|---------------|----------|------|--------------|
| **限制简单费率** (nginx,ApacheMPK2|vó1 MSKO5v{2#| 免費MS K8OS)}MSOK10要求按IP}/UMSQK12Trivial 自行绕过旋轉 *.Z|
| **AWS WAF IP名声** @~$5-20/_月度@+{-}請求費 |
| **Cloudflare Bot管理** |@ v @2-v3 @ @MS K3诉4 @#(}(片面的)) @{|_}~$250-1000/_ 月_|TLS指纹*,JS 挑战{MSKO11}行为评分 □. do cross-Temothoral 或运动}♫-一级集束~.Z|
| **Imperva / 插件** |@ v @2- @v3} @MS K3 @ vó4 @ @ @  @ MPK6 @ @ *|_ year @ @ s|# 设备指纹=% MS K10 @行为基线@,: 比率限制@MS K12 @ weak on LLM-# 特定模式 @ I. @ @ | @
| **数据日期** |@ v2- @v3} @|} [4}{但没有明确的马尔可夫过渡模型或捆绑签名内存>~.#
| **Akamai Bot 经理** |@v @s3}{|}(但并非为协调的竞选背景所设计)
| **开源来源** | @|@|#Free @MS K9 @OSSQK10}{|}(根基IP封鎖)
| **斯泰罗博特Name** |@ v @2- @v4 @ @ @ MS K3} @ a外的 | @ free @ ( @sOS#)} @ I/_ Nuget 套件 @ MPK8}所有上述回馈回應回路 *+#

**成本真实度检查@: @%**

- 企业解决方案 @(_Cloudflare},_Imperva,数据Dome=,AkamaiMS K4 **每年$3,000-$50,000+** 他们快速部署和处理已知的 vó2-v3攻击表面@.
- 开放源码@( @ fail@ 2}%ban @ ,} nginx 速率限制\)}是免费的,但在 v1.}停止
- **StyloBot是免费的** (Unlicense 许可的 Nuget 软件包@), 自行 @-}托管 *, 并处理 v2-vMS K5 您在基础设施支付=%/CPU},{没有许可证_.}

**关键洞察力:** 多数企业解决方案 @(_Cloudflare,_Imperva},AkamaiMS K3}在v2-v3偵測@.}它們抓獲無頭瀏覽器,

1. **没有响应@ -_\ feed 回路** @→Can't跟踪机器人如何从你的答复中学习#.
2. **无过渡建模** →Can't 区别@"browsing 外观人类但有系统提取的图案_."}
3. **无约束时间内存** → 要么在 DDoS)下未受约束的状态 {(}fn方正黑体简体\fs18\b1\shad1\3aHBE\4aH64\fscx67\fscy66\2cHFFFFFF\3cHFF8000}要么没有跨-}时间推理=.
4. **没有明确的竞选活动集群** @ →_ 独立处理每个机器人签名@ ;_ 错过协调波=.}

**他们处理在2022.中存在的市场。** 但LLMbots改变了游戏“.StyloBot”的设置,这是从零开始为v@4+.}而您却不支付$'t 为它支付 $15kk□/年

---


## 深海底建筑结构

其余部分则通过管道中的每个机制,

---


## 回复@- @side 回馈到请求拼贴

StyloBot记录了反应行为,并将其折叠到未来对同一客户签名的请求决定中@.

### 中间软件的钩点

```csharp
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` 能够添加像 @:}这样的信号

- **蜜罐路径点击@: @%** 您有秘密路径, 真正的用户从未访问过@( @ like `/admin/secret.php`一个要求这些显然是恶意的机器人 . *
- **404 扫描图案** 要求“50”的机器人使用不同路径,
- **{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}拼命搏斗** 重复收到 @ 401/403 @ 响应表示有人在尝试密码@ MS K2}
- **违反限制事件历史记录** 被打断后Bot一直打你 .
- **高复合反应得分** 上述组合显示蓄意攻击 , 而非意外

这把检测变成 **已关闭的 - @ loop 控制系统**你观察机器人的行为举止 *之后* 您响应了@,, 并更改下次请求的评分@ . It's like a反馈循环, 其中每次互动都让系统更多了解攻击者MS K3}

---


## newvel 位元@ #2: @ Markov-_ sttyle 过渡建模

电波形探测器 **过渡矩阵表** (a 表格显示请求从一种类型向另一种类型移动的频率@)}在内容类别和分数总体浏览模式之间

**这在普通语言中意味着什么?** Markov 模型轨迹@" @}什么接下来会发生? 基于您刚刚看到的 <."人类浏览器通常要求有一个页面 →}然后多个资产 {(images @,}♪脚本=・)} * _→} 然后另一个Page>._Bots经常显示不同的模式 : page\ MPK10page k11\ 页面在环形,}通过绘制此序列来跳过所有资产\□. 200)}%,} styloBot斑点的反常浏览节奏 。

```csharp
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];
```

然后它标出可疑的过渡形状 :

```csharp
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%”直接转到另一页 “(”而不是像真正的浏览器那样获取资产,那么“MS K3”是一个bot 签名@.}真实浏览器取回了网页 @, 然后加载所有支持文件 {(images,CSS\,JavaScript}).裁剪器经常跳过该资产取出和跳跃 page_.}

---


## 新点@ #3: @ wave-} 有条纹的探测器图

而不是在每次请求中运行所有探测器@, @StyloBot使用 **分阶段输油管**“: 便宜”“, 快速检查先跑'. 只有当他们标记可疑时,它才会花费CPU来进行昂贵的‘, 更深入的分析’ @.

**为什么这重要?** 您没有支付全部分析费用@(ML 模型 @,}群組查詢@MS K3 etc .) 等,

```csharp
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>();
```

这保持了快速的-path lantency 低,同时只有在早期信号证明有必要时才能进行深度分析@.

---


## @(@Network truth 和声称的身份=)

在 Windows\ ").\ 上,一个机器人可以谎称它的用户@- @Agent @(}字符串声称“"_I'}#m Chrome”在Windowes @MS K4}(但是更深的网络层比较难伪造)

**这个想法** 检查 Bot's 索赔要求在多个级别是否一致@:

- **TCP 层** ( 低端 @- 级别连接@): 视窗機有特定的 TCP 視窗大小與行為@MS K3 bot's TCP行为是否符合它所声称的 OOS#?}
- **TLS/SSL 层** 不同的浏览器使用不同的 TLS 密码命令和版本@. @bot'}TLS指纹是否匹配 Chrome {(}or Safari})}应该像 @?}
- **HTTP/2层** @ (_ 浏览器结构要求@ MS K1} 真正的浏览器有特定的 HTTP/2 客户端行为@ MPK3} 机器人是否正确模仿它们@ I? {
- **地理学@/语** 校对:Portnoy

如果你看到跨“3+”的不匹配情况, 则几乎可以肯定地说是一个“bot—”, 因为不断假冒所有这些错误比仅仅改变用户“-”更难得多。

```csharp
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()));
```

这是堆叠中最强烈的 反-+Spoofing机制之一

---


## 与受损害时间状态的签名内存

StyloBot 记得每个机器人签名最近都做了些什么吗? .}但记忆必须是 **受约束** @(can@'}长成永远的 )和 **已订购** “(”更新可以“'”和“).”赛跑

**为何如此棘手?** 想象一个机器人不断从相同的 IP 和用户@ - @ agenent gango @ .} 您想要记住 @ " @ this 事件击中了蜂蜜罐 {5\ 乘以," @ _"} 它在一次协调的群組中得到了 MS K7+ @ I"_ MSQZQQQ} 部分 MSKO10}但是在高端的MS K11 traffic 场景, 您可以有数千个签名\ MSMK13} 在不小心的国家管理下您会丢失数据 <> 卡切斯驱逐重要历史{MSC17}或者花费太多的记忆 *(unbounded成长=).}

StyloBot 以 TTL-äware 缓存解决此问题 @ (memory 自动过期旧签名@ MS K2}+按键的顺序更新 *(each spokk4%s

```csharp
_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- 签名命令\ , 横跨签名@ MS K2 和自动 TTL/LRU 压力控制@.

---


## @ +_ 聚合情报

StyloBot 并不停留在单- 签名评分MS K1 它添加了运动\ - level context}:

- **Bot 产品组群 @:** 许多攻击者使用的相同刮痕工具@. @ if you recognize abot from `ScraperXYZ`@, 另找一个得到更高的信心#.
- **Bot 网络群集@: @%** 来自多个签名的协调攻击 @ ( @ applic IP@ MS K1 @ 旋转用户 @ I-_ agents @ MPK3}但相同的运动 @ OMK4 这些时间上相关联的@ — @ 他们在波浪中袭击你\ . @
- **国家名声衰变 *:*** 大部分机体流量是否来自特定区域的数据中心IP@?}这变成了一个微弱的信号{,}但随着模式变换而衰落*.}
- **签名会合家庭 @:** 有时机器人会旋转其用户@- @Agency 或 IP 部分, 但保持核心行为=%.}Convergence family 跟踪这些相关的突变\ .

```csharp
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));
}
```

这提高了边界交通的探测质量,不盲目地升级每一个未知的“.”

---


## Leiden Bot- 网络分组

目前的群集用途 **标签传播** @ ( @ imagine 通过网络散播彩色标签@ —} 相似的bots 最终会出现相同的标签@)., 但是这些#'_ 乱七八糟 @.} A **Leiden- 风格社区改进** 通过优化社区边界来清理垃圾 #.#

**普通英语@: @%** “.”不是说这些机器人看起来都和“,”相近,而是说它们是一个单独的运动“MSMK13”吗?

为什么这重要?

1. 社区质量优于天真的图表分区@. @%
2. 跨重新运行的更稳定的社区@.
3. 有机产品与协调的有机网络之间的清洁分离
4. 政策和操作者工作流程的更强大的下游标签@.

高端- 水平流 *:*

```mermaid
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]
```

Leiden- 风格的伪编码#:

```csharp
// 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);
}
```

因为这给了你持久的竞选活动... ...-#级别实体...",}不只是吵闹的双向相似性连接

目前的生产实施细节@,见 @:

1. [集群探测工具](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/cluster-detection.md)
2. [深度探测器](https://github.com/scottgal/stylobot/blob/main/mostlylucid.stylobot.website/src/Stylobot.Website/Docs/detectors-in-depth.md)

---


## 新属性是运行时控制表面

MVC特性提供操作控制平面 :

```csharp
[BotPolicy("strict")]
[BotAction("challenge", FallbackAction = "block")]
public IActionResult Checkout() => Ok();

[BotDetector("UserAgent,Header,Ip", BlockAction = BotBlockAction.Throttle)]
public IActionResult MultiDetector() => Ok();
```

**这些都做了些什么?** 您用他们需要的安全姿态标记单个端点@ . @ checkout 可能需要严格的保护 @ MS K1 @ challenge 疑似bots,} # 如果它们能够 @ MPK3_ t解决它\ ).# 公共API可能只是加速 *.}搜索端点可能只能检查 Useer\ -}Agency and hederZ.} 这将允许团队对不同的端点应用不同检测策略而不写入自定义的中间软件“ MSKO8’ Just decorate the action “ MSSK9” 。

**[尝试在 sttyloboot @. @ net 上使用不同的策略](https://stylobot.net)** 测试 `strict`, `balanced`,和 `permissive` 当政策变化影响早期 - exit行为=.\ 时,请看真实的延迟

---


## StyloBot 站点是如何建筑的

公共网站也制作了作品“-参考表层”和“MSC1”。

```mermaid
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 ( 反向代理 *) 航线流量*. 一些去运行所有机器人检测的入口 {}一些直接到网站 <%( real@-_time 遥测仪表板>}). 双方都可以写给数据库 □. 网关可选择使用 Ollama  本地 AIT 模型*MS K10 用于高级分析=.}

为何分解工作?

1. 网关在应用程序路径前强制检测@.
2. 信号枢纽路径对于实时遥测来说仍保持稳定@.
3. 共享的持久性给出了统一的操作视图@. @ @

---


## 为何如此重要

这五个不同的操作者 @ — @ kendenate} MS K1loop addressation@ , 过渡=-shape 模拟 *, 临时签名记忆_ MSKO5 cross\ -layer context@, 和运动- 级别组群落背景@ MPK9deliver 行为解析标准 RegexMS K10+}-rate ♪-限制系统无法匹配{.}

**希望看到他们在行动中 ?** 转到 **[stylobot\% . @ net](https://stylobot.net)** 并测试生产中的检测器@. 提交不同的请求, 并且观察如何早期在 @ — kexit picks in @ IMSK2} 大多数被分析过的请求 在子+- milliconomic lantency MS K4 that_'s 其中理论变成性能=.}

---


## 技术概念-:-权威性参考

如果上面的技术术语 感觉新, 这里是计算机科学和网络安全文献的卡通参考

### Markov 链条 @ & @ 过渡分析

- [維基百科:馬爾科夫鏈](https://en.wikipedia.org/wiki/Markov_chain) “-”的基础概念
- [斯坦福 CS109:隐藏马尔科夫模型](https://cs109.github.io/data-science/hmm/) 用于真实的-世界序列问题

### 社区探测

- [Leiden Algorithm Paper (Traag et al@., 2019)](https://arxiv.org/abs/1810.03247) “-州”“- - 《- 艺术社区在网络中的检测 ”《.~ MS K5》[当地指南](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/cluster-detection.md))
- [Label 传播比值](https://en.wikipedia.org/wiki/Label_propagation) StyloBot'}基线群集如何工作

### 网络指纹@ & @ cross @ MS K1_ Layer 关联

- [TLS指纹: (JA3/JAMPK2](https://github.com/salesforce/ja3) 用于 TLS 签名匹配的 -工业标准
- [TCP /IP 堆积指纹](https://nmap.org/book/host-discovery-techniques.html) -Nmap's p0f 工具參考
- [HTTP/2指纹](https://www.cloudflare.com/learning/http/http2/) hTTP=/2}行为表现如何不同?
- [OWASP : 指纹](https://owasp.org/www-community/attacks/Fingerprinting)

### 时间性国家管理QZ&缓存设计

- [TTL-}以Catching 战略为基础的](https://en.wikipedia.org/wiki/Time_to_live) - 过期时的折叠内存
- [LRU 与 TTL 缓存](https://docs.microsoft.com/en-us/dotnet/api/system.runtime.caching.memorycache) *- .NET参考实施

### 行为分析 * @&非正常检测

- [时间序列中的异星探测](https://en.wikipedia.org/wiki/Anomaly_detection) *-基础概念
- [OWASP : 行为举止](https://owasp.org/www-community/attacks/Rate_Limiting) 静态限值何时及为何失效?

### LLM-Driven Bots □&数据集中毒

- [防止机器学习模型数据中毒](https://arxiv.org/abs/1811.03728) “-”为什么刮船瞄准你的数据?
- [LLM 培训数据提取](https://arxiv.org/abs/2302.07933) 为什么机器人想要你的内容?

---


## 更多信息: @(_Iep Technical Documents_)

本文是叙述性演示文稿 @._#完整细节在 docs@:}

1. [主 repo README 主副本](https://github.com/scottgal/stylobot/blob/main/README.md)
2. [Bot检测 API 参考](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/api-reference.md)
3. [StyloBot 如何工作](https://github.com/scottgal/stylobot/blob/main/mostlylucid.stylobot.website/src/Stylobot.Website/Docs/how-stylobot-works.md)
4. [深度探测器](https://github.com/scottgal/stylobot/blob/main/mostlylucid.stylobot.website/src/Stylobot.Website/Docs/detectors-in-depth.md)
5. [APPI培训数据](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/training-data-api.md)
6. [群集探测](https://github.com/scottgal/stylobot/blob/main/Mostlylucid.BotDetection/docs/cluster-detection.md)

---


## 部分#3

部分“3”将涵盖生产调控 “:”阈值“MS K2”假的“-”阳性控制“MSC4”漂移“MSKO5”和推出策略“MSSK6”