
第一反应当然是:难道产品突然爆火了? 几分钟之后我冷静下来:这更像是一场「恶意注册 / 接口攻击」,而不是增长奇迹。
这篇文章想简单记录一下:
希望能给同样在做小产品 / side project 的同学一点参考:就算你现在只有几十个真用户,也值得认真对待安全和风控。
先简单说一下背景。 我用 Claude Code 搭了一套自己的 GTD 系统,名字叫 GTD Pro,灵感来自 OmniFocus ,目前主要是我自己和少量真实用户在用,线上版本在这里: https://gtd.nebulame.com/
按照正常节奏,这个系统一天新增用户只有几个人,有时候甚至是 0 。结果昨天我在后台看统计时,发现:
问题在于:
所以这波「暴涨」明显不正常。
我简单做了几件事:
基本可以确认:这是一次针对后端 API 的「恶意注册 + 写入」攻击,而不是自然增长。
从日志里复盘了一下,大概情况是这样的:
POST /api/auth/register 注册接口被高频调用POST /api/inbox Inbox 创建接口被高频调用几小时之内,数据变成了这样:
从时间分布和请求模式看,很明显这不是正常用户增长,而是脚本在持续轰炸注册接口和 Inbox 接口。这里可以放上 Claude Code 帮我整理出来的攻击摘要和时间线截图,我也是在它的提示下,开始给系统补上第一轮安全防护。
这次排查其实花的不是很多精力,更多是靠 Claude Code 帮我把问题结构化了一遍。
大概流程是这样:
Claude 给出的几个方向非常实用:
我对照这些建议,很快做了第一轮处置:
这次体验对我来说有点意思:
对一个只有几十个真实用户的小产品来说,这种「 AI + 人」的协作方式刚好合适。
这次事件之后,我给 GTD Pro 加了三道「基础安全锁」,也推荐给还在早期的独立开发者:
1 )给注册和写入接口上闸门
2 )引入一个「人类门槛」
3 )业务上把「可疑流量」和「真实用户」彻底分开
is_suspicious = true这次攻击也间接帮我确立了一个心态:
这次恶意注册事件,对我最大的提醒是:
严格来说,这次并不能算一场「大规模攻击」,更像是给我提了个醒:
最后,留两个入口:
如果你也在做自己的小工具、小产品,建议不要等到「出事了」再补安全。哪怕只是在注册接口前面多加几行简单的 rate limit 逻辑,都是一个好的开始。
也欢迎你来试试 GTD Pro ,或者在 issue 里告诉我你遇到的安全/风控问题,我们可以一起继续把这套系统打磨得更像一个真正可依赖的「第二大脑」。
如果你对我在做的通用 Agent 框架也感兴趣,可以看看:
GTD Pro 目前主要跑在 Claude Code 上,后面也会逐步和这套 Agent 基础设施打通。
1 TrackBack 9 小时 6 分钟前 后端和认证是自己搭的吗? 用 supabase 这些服务的话,开箱就有 rate limit ,应该会好一些? |