Self-hosted CAPTCHA

拦住机器人,
保障接口安全。

工作量证明、滑块拼图、文字点选与行为分析——多层防线一键部署。

<guard-widget> · 实时演示循环
Integration

两行代码接入

引入脚本,放置组件。挑战下发、求解与行为采集都由 Guard 完成。

index.html
<!-- 1. 引入组件脚本 -->
<script src="https://guard.sad.kim/guard.js" defer></script>

<!-- 2. 放置验证组件 -->
<guard-widget site-key="YOUR_SITE_KEY" api="https://guard.sad.kim"></guard-widget>

验证通过后组件派发 solved 事件并携带一次性 token,业务后端调用 POST /siteverify 核销。

查看完整接入指南 →

Defense in depth

验证在三个维度同时发生

每一次通过都要同时越过计算、交互、行为与时效四道关卡。

工作量证明

SHA-256 哈希挑战在 Web Worker 中静默求解,真人几乎无感,脚本批量请求的成本却陡然上升。

交互式挑战

滑块拼图与文字点选按需出现,坐标经 AES 加密传输,服务端解密比对,答案不落在前端。

行为分析

轨迹方差、速度均匀性、点击节奏与环境指纹逐项打分,机械式的完美反而暴露自动化。

Lifecycle

一次验证的完整路径

01
握手POST /{siteKey}/handshake

组件加载后向服务端握手,按 Key 配置选定验证模式,下发挑战与签名票据。

02
求解Web Worker · PoW

后台线程求解计算挑战;需要时展开滑块或文字点选,同步采集操作轨迹。

03
确认POST /{siteKey}/confirm

服务端校验 PoW、比对交互答案、评估行为数据,签发一次性 pass token。

04
核销POST /siteverify

业务后端持 secret 核销 token。token 一次有效,重放即失败,闭环完成。