首页 > 开源 > 开源bot-signal:三层信号识破无头浏览器与脚本机器人

开源bot-signal:三层信号识破无头浏览器与脚本机器人

AI垂直社区 2026-10-07 10:51 3 阅读 查看原文

bot-signal 是一个 TypeScript 优先的开源机器人检测库,通过即时浏览器检测、行为分析与服务器端校验三层独立信号,识别无头 Chrome、Playwright、Puppeteer、Selenium 及脚本化输入。无需 API 密钥、数据不出本地,每个信号均有名称、权重与置信度,一行 isHuman() 即可上手,MIT 协议免费使用。

适用人群:1. 需要防范爬虫与自动化攻击的后端及全栈开发者,尤其是 Node.js/TypeScript 技术栈团队;2. 负责登录防刷、注册风控、反薅羊毛的安全工程师与风控开发人员;3. 希望自建检测体系、规避商业风控 SaaS 高成本与数据外传风险的中小企业技术团队。

适用场景:1. 登录注册与表单防护:页面加载时用 isHuman() 拦截 Playwright、Puppeteer 等自动化工具发起的批量注册、撞库与恶意刷单;2. 服务端请求风控:结合数据中心 IP 识别、JA3 TLS 指纹校验与时区一致性验证,识别伪装成正常浏览器的 API 滥用与爬虫流量;3. 高价值交互行为验证:在验证码、抽奖、投票等场景中通过鼠标轨迹、滚动与打字节奏分析判断真实人类操作。

推荐理由:bot-signal 以 MIT 协议开源,零 API 密钥、零数据外传,三层可解释信号覆盖浏览器、行为与服务端全链路,类型完备、每周自动更新 IP 数据、单次查询仅约 1 微秒。对预算有限又需要可控反自动化能力的团队,是商业风控之外的高性价比选择。

项目定位与背景

在反爬虫与业务风控领域,商业方案如 Cloudflare、DataDome 等价格高昂且逻辑黑盒,网上流传的零散检测代码又极易过时失效。bot-signal 是一个 TypeScript 优先的开源机器人检测库,目标是提供可维护、强类型、可测试的完整工具包,覆盖从浏览器到服务器的全链路检测,完全免费、无需 API 密钥、数据不出本地基础设施,目前在 GitHub 已收获 540 颗星。

核心功能与技术架构

项目最核心的设计是三层独立信号体系。第一层即时检测运行在浏览器端,可同步或异步执行,捕捉自动化痕迹、原生函数篡改、跨 realm 与 UA/GPU 矛盾以及 CDP 协议特征;第二层行为分析随时间积累,分析鼠标、触摸、滚动和打字节奏,识别人工合成事件与机械式操作;第三层服务端检测要求 Node 22 以上环境,负责数据中心 IP 识别、TLS/JA3 指纹校验和时区欺骗验证。三层信号相互独立,可单独调用也可组合评分。

创新点与亮点

首先是可解释性,每个检测信号都有名称、权重和置信度,开发者既能一行 isHuman() 拿到结论,也能逐项审查加权信号,这在黑盒横行的风控领域相当难得。其次是工程质量:GeoIP 与 IP 黑名单数据随包捆绑并每周自动更新,IPv4 与 IPv6 匹配采用二分查找,单次查询约 1 微秒;TypeScript 全类型覆盖,ESM 与 CJS 双格式,bundler 安全的子路径导出让浏览器与 Node 构建互不干扰。项目还提供在线演示页,可立即在浏览器中体验即时与行为检测。

与同类项目对比

相比 FingerprintJS 等侧重设备指纹的项目,bot-signal 不做跨设备身份追踪,而是专注判断当前会话是否为机器人;相比商业风控 SaaS,它没有全球威胁情报网络,换来的是零成本、零数据外传与完全可控的检测逻辑。短板也需正视:包体积较大,压缩包约 1.8MB、解压后约 16MB,主要来自捆绑的黑名单数据;540 星的社区尚年轻,面对定制指纹的高级反检测浏览器,对抗能力仍需实战检验。

上手指南或快速开始

安装只需 npm install bot-signal。浏览器端引入 isHuman() 即可在页面加载时拦截自动化访问;需要精细控制时,可通过 /browser 与 /server 子路径分别导入各层 API。服务端传入请求 IP、TLS 指纹与时区信息即可完成信誉校验,建议按业务风险等级自行调整信号权重与阈值,并组合三层信号获得最佳效果。

总结与展望

总体来看,bot-signal 用开源方式补齐了中小团队在机器人检测上的空白,可解释、可自托管、无供应商锁定是其最大价值。未来行为模型的深度与 TLS 指纹库的更新速度将决定其长期竞争力,值得安全与风控方向的开发者持续关注。

项目信息

项目名称 okasi/bot-signal
编程语言 TypeScript
Star 数 540
Fork 数 4
主题标签 anti-bot, automation-detection, behavioral-analysis, bot-detection, browser-fingerprinting, cybersecurity, fraud-protection, geoip, mouse-movement, security, tls-fingerprint
查看 GitHub 项目
https://github.com/okasi/bot-signal