原文:https://dev.to/0xstoic_bit/i-built-an-open-source-alternative-to-cloudflare-turnstile-using-fittss-law-and-kinematics-442 (作者 @0xstoic_bit)
我一直很讨厌那些侵入式的验证码和昂贵的专有云WAF。即使是“无感”的(如Cloudflare Turnstile或reCAPTCHA v3),本质上也是黑箱,会收集大量的用户遥测数据。
因此,我花了过去几个月构建了Synapse Shield——一个完全开源、可自托管的行为式机器人防御引擎,适用于Python(FastAPI/Django/Flask)和React。
- GitHub 仓库: https://github.com/0xStoic-bit/Synapse_Shield
- PyPI 包: https://pypi.org/project/synapse-shield/
工作原理(运动学与数学)
Synapse Shield 不仅仅检查鼠标是否直线移动,而是以亚毫秒级分析19维运动学向量:
- 急动度(位置的三阶导数): 人类肌肉有微小的震颤。而机器人(即使是高级的贝塞尔曲线机器人)产生的急动度接近于零或呈静态。引擎会检测这种生物震颤($da/dt$)。
- 菲茨定律的终端减速: 人类在点击目标时,光标会自然减速。我们测量
终端减速比来捕捉机器人。 - 泊松异常检测: 使用累积泊松分布算法来捕获无头API洪水攻击。
主要特性与加固(v0.5.0)
- 异步非阻塞SLA (<0.5ms): 通过
asyncio.to_thread卸载处理,确保永不阻塞 FastAPI/Django 事件循环。 - 加密重放防御: 使用带有 SQLite WAL 的 HMAC-SHA256 签名随机数,确保令牌无法被重放。
- 无障碍模式: 通过设置
accessibility_mode=True可以优雅地降低运动学阈值,避免错误地标记行动不便的用户。 - React 与 Next.js SSR 支持: 提供原生的
"use client"可插入组件和 Hook,避免水合错误。 - 企业级 Prometheus 指标: 原生支持
PROMETHEUS_MULTIPROC_DIR,适配 Gunicorn/Uvicorn 多工作进程。
快速代码示例 (FastAPI)
from fastapi import FastAPI, Request
from synapse_shield import shield_protect, SynapseShieldMiddleware
app = FastAPI()
app.add_middleware(SynapseShieldMiddleware, protected_paths=["/api/auth"])
@app.post("/api/login")
@shield_protect(max_risk_score=50.0, accessibility_mode=False)
async def login(request: Request):
return {"status": "authenticated"}
我渴望收到你的反馈、代码审计,或者关于如何改进运动学引擎的任何想法!
原文:https://dev.to/0xstoic_bit/i-built-an-open-source-alternative-to-cloudflare-turnstile-using-fittss-law-and-kinematics-442 (作者 @0xstoic_bit)



