标签 多级哈希算法 下的文章

当我看到一堆的 CF-IP 的就知道靠 IP 封禁已经不行了继续讨论:

这个时候就要介绍下一种新的滥用检测方法啦 w

活跃任务检测是一个实时并发请求监控系统,可以追踪用户在一段时间内的并行 API 调用行为。其使用槽位为核心概念来表示和管理活跃任务 w

一个任务槽就代表一个活跃任务

该机制可检测以下行为:

  1. 共享 KEY
  2. 自动化脚本
  3. 资源滥用等

同时又能避免误伤正常使用的用户

对应的数据结构:

type TaskSlot struct {
    UserID       int
    Username     string
    UpdatedAt    int64 // Unix 时间戳
    HashPrefix   [HashLevelCount][HashPrefixLen]byte // 6级哈希前缀
    MaxLevelIdx  int // 数据长度对应的最高层级
}

项目采用多级哈希匹配算法对活跃任务实施继承

多级哈希的工作流程:

  1. 对内容的前 8、64、512、4096、32768、131072 字节计算哈希
  2. 遇到新请求时,与现有槽位的哈希进行比对
  3. 如果最高层级往下数 2 个层级能匹配,则继承槽位
  4. 否则,创建新槽位,并使用 LRU 淘汰旧槽位

这实现了可通过用户的槽位数来代表活跃任务数

最终后台线程会定时将 10 分钟内活跃任务数大于 5 的用户记录下来备查

已在我的二开版本中实现

(目前适配 mysql 和 postgres)


📌 转载信息
原作者:
ByteBender
转载时间:
2026/1/10 19:05:02