一个 Vibe Coding 网站是怎么在上线几十分钟内被打爆的

16 条回复
132 次浏览

昨天发帖分享了一个刚做的小网站,叫 锐评

网站可以给不同社区打分,档位是:

夯 / 顶级 / 人上人 / NPC / 拉完了

我怕兄弟们连快捷登录都懒得点,跟别提注册登录了,就把游客权限也打开了:不登录可以评分,也可以评论。让大家先进来玩玩,真有人乱搞的话,我再去后台关掉游客权限。

当时觉得这个方案挺宽松灵活的,现在看,确实宽松,主要是方便攻击脚本发挥。

我的帖子没爆,服务器先爆了

当天晚上我先后在几个社区发了帖子:

  • 20:50:2Libra
  • 21:01:V2EX
  • 后来又发到了 Linux Bi

本来以为能来几十个人,帮忙测测功能、提点意见。没想到互联网上有坏人,没过多久,网站就打不开了。我打开 Vercel 后台一看,请求量已经飞起来了。

Vercel DDoS Mitigation 数据

两个相邻 IP 正在疯狂请求网站里的条目:

复制
103.197.30.225
103.197.30.226

主要目标是 /t/rping-cc。一共制造了大约 20 万次 Firewall Actions,还顺手给“锐评”刷了接近 3,000 次“拉完了”。

我做这个网站,本来是想让大家锐评互联网社区。上线第一天,网站自己先登上了「拉榜」榜首。

锐评条目列表

拔电源吧

我一开始没当回事儿,毕竟早就想过:有人乱搞的话,去管理后台关掉游客权限就行。

没想到的是,攻击来的时候,我自己也进不去后台了。页面打不开,无奈只能直接改数据库,把游客评分和评论权限先关掉。权限改完,异常评分是不再增加了,但那两个 IP 还在继续请求,给服务器上强度。

刚开始我其实没怎么生气,觉得网站刚上线就被打,也算是给自己上了一课,当个乐子看就好。我屏蔽了 IP、加了防护规则,也在帖子里明确说了这件事。

结果那个人并不打算到此为止。IP 被 ban 以后,它又换了 IP 继续捣乱,还注册了一个用户名叫 xjp 的账号,开始刷乱码评论。评分刷不动了,就改刷评论区。一共发了 128 条锐评,评论区被它刷得像乱码瀑布一样。

这就不是乐子了,这人确实是坏种,这么干对你有什么好处呢?

只能先拔电源,把服务关了。

Vercel 流量概览

乱码评论和异常刷票结果

日志里的时间线

后来我导出了攻击前后近两个小时的完整日志。这个客户端第一次出现是在:

复制
21:12:53 GET /t/v2ex 200

紧接着:

复制
21:13:09 GET /t/rping-cc 200
21:13:16 POST /t/rping-cc 200

它进入网站 23 秒后,就开始尝试刷票。刚开始还挺克制,隔几秒请求一次,像是在试接口。十分钟后,大概确认接口确实没什么防护,于是正式开工:

复制
21:24 开始高频请求
21:25 单分钟接近 2,000 次
21:35 第一轮高峰
22:02 第二轮高峰
22:05 基本结束

Vercel 的 DDoS Challenge 大约拦下了 16.4 万次请求,但仍有 5 万多次攻击被放行。

图片 4

所以是 V 站用户干的吗?

刚开始我怀疑是 linux bi 用户干的,毕竟我天天逛 v 站,默认把战里兄弟都当成高素质人群了,但是从日志上看,我开始怀疑是 v 站用户攻击的。

V2EX 帖子发于 21:01,帖子里放的是专属链接 /t/v2ex;可疑客户端在 21:12:53 第一次出现,第一条请求刚好也是 /t/v2ex,23 秒后就开始测试刷票。时间和路径确实挺吻合。

当然,我可定无法证明是某位 V2EX 用户,链接可能被转发,也可能通过别的方式传播,更没有证据指向某个具体账号,大家看个乐子得了。

图片 5

连夜补窟窿

关站以后,我紧急补了几条安全规则。

屏蔽攻击 IP,开启 Attack Mode,增加全站请求限流,给统计接口和详情页写操作单独限流,关闭游客评分和评论,清理异常数据,再检查一遍服务端校验和数据库约束。

以前担心登录会劝退用户。现在觉得,劝退几个嫌麻烦的用户,总比把我劝退强。

我之前为了让注册登录方便一点,还把 confirm email 关掉了。现在看来,这个开关还是得打开。要求用户确认邮箱,至少能给批量注册增加一点成本,不能再让脚本注册完账号就直接开刷。

总结:Vibe Coding 路边一条

这个网站 MVP 版本全靠 Vibe Coding 快速做出来的。

上线几十分钟就被打爆了,我也低估了互联网上有些人的恶意,难怪很多论坛、社区都设置各种注册条件、发言条件。这都是被你们这帮坏种逼的。

这次算是被互联网坏人上了一课,也提醒自己,敬畏技术,生产级的产品不是 AI 几下就能做出来的。

目前已经重新上线。下次争取活久一点。

❤️1
👍3
300
  • 附言 1

    网站贴错了,是 rping.cc 不是 com - -

OP

我部署在 Vercel 上,以为自带防护够用,事实上 Vercel 也帮我拦截了大部分。
之前从来没遇到过专门攻击别人网站的坏人,所以网站的各项权限很宽松。:DOG:

马上来

在互联网上当坏人成本太低了,好多人现实生活不满或者在网上有看不顺眼的事就喜欢当坏人搞事情,只要不是个人使用的网站,防护这块还是注意点好

OP

要不是 vercel 有基础防火墙,我这时候已经损失 200 刀了 - -
吓得我赶快把超额设置成 5 刀,超过了就停机 :dog:

网安的第一个假设就是零信任啊。
不管是多么垃圾的网站都总有人打的。think

前排打手

v2 发网站≈快来打我facepalm
免费压测了属于是(但是一般也不会一直打就是了

卡皮巴拉
Admin

是 doge 不是 dog,而且是带表情就好了,不一定是狗头

混沌

这么说吧。只要公开,防人之心不可无。有些人就是纯粹的坏。

OP

那个人一直攻击没停呢,上了 CF,Vercel 上也限制每分钟访问次数。让他慢慢低频率访问我网站吧enough

发表一个评论

R保持