一些人已经在使用fastapi-guard。如果你还没有...大概你已经在tiktok上看到了那条视频。一个家伙在他的家用服务器上部署opencraw,查看他的日志记录。24小时内有11,000次攻击。我就是在那条评论下建议使用fastapi-guard的那个人。后面的事情就像那样发展起来了。下面是它实际上做了什么。
from guard import SecurityMiddleware, SecurityConfig
config = SecurityConfig(
blocked_countries=["CN", "RU"],
blocked_user_agents=["Baiduspider", "SemrushBot"],
block_cloud_providers={"AWS", "GCP", "Azure"},
rate_limit=100,
rate_limit_window=60,
auto_ban_threshold=10,
auto_ban_duration=3600,
)
app.add_middleware(SecurityMiddleware, config=config)
只有一行中间件调用。每次接收的请求都会在路径操作执行之前进行17条检查:XSS、SQL注入、命令注入、路径遍历、SSRF、XXE、LDAP注入、代码注入。检测引擎包含混淆分析和高熵负载检测来检测新型攻击。除此之外,还包括速率限制、自动禁用、地理位置阻止、云提供商IP过滤、用户代理阻止、OWASP安全头。
每种攻击(如tiktok上面看到的)都可以映射回一个配置字段。5,697条来自中国的IP? blocked_countries 就可以阻止它们了。百度蜘蛛? blocked_user_agents 就可以阻止它们了。数字海洋机器人集群? 云提供商范围会自动缓存,并且立即阻止它们。暴力破解序列? 速率限制,然后会在达到阈值后禁用它们。但是 .env探测和路径遍历? 检测引擎可以无需配置就检测这些攻击。
OpenClaw 的审计结果更糟糕了:该代码库中存在512个漏洞,8个漏洞属于高严重性,且超过40,000个实例暴露在网络上,可立即攻击60%。ClawJacked (CVE-2026-25253) 允许任何网站绕过本地实例的 WebSocket 防护。如果你在互联网上暴露 FastAPI 接口,你就需要每个请求级别的安全。
装饰器系统使用异步方式,根据路由执行:
from guard.decorators import SecurityDecorator
guard_decorator = SecurityDecorator(config)
@app.get("/api/admin")
@guard_decorator.require_ip(whitelist=["10.0.0.0/8"])
@guard_decorator.block_countries(["CN", "RU", "KP"])
async def admin():
return {"status": "ok"}
有人实际使用它来做的事:在远程团队下构建的初创公司,public api但是白名单限制,仅公司内部可以看到它的存在。赌场和线上游戏平台使用 decorator 在奖励端点上,为了限制玩家只在特定条件下才可以赢得。honeypot 阵地陷阱用来检测 LLMs 和坏的浏览器。最后一个持续出现的问题是 AI 代理门户。 如果你部署了 OpenClaw 或者任何代理框架,在 FastAPI 上,接口是可公开网络接达的。审计发现了 512 个漏洞,8 个漏洞属于高危,40,000 多个实例暴露在网络上。fastapi-guard可以通过上述攻击向量把他们都阻止掉。这将成为任何在生产环境部署AI代理的人的标准化安全保护层。
我也刚刚发布了一个 flasks 的等效版本。如果有人在使用flask,就可以使用 flaskapi-guard v1.0.0。同样的检测引擎,同样的pipeline,同样的config 字段。
fastapi-guard: https://github.com/rennf93/fastapi-guard
flaskapi-guard: https://github.com/rennf93/flaskapi-guard
flaskapi-guard在PyPI: https://pypi.org/project/flaskapi-guard/
如果你发现了 issues,去打开一条 issue。
评论 (0)