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

查看 80|回复 8
作者:gxlwm   
昨天发帖分享了一个刚做的小网站,叫 锐评。
网站可以给不同社区打分,档位是:

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

我怕兄弟们连快捷登录都懒得点,跟别提注册登录了,就把游客权限也打开了:不登录可以评分,也可以评论。让大家先进来玩玩,真有人乱搞的话,我再去后台关掉游客权限。
当时觉得这个方案挺宽松灵活的,现在看,确实宽松,主要是方便攻击脚本发挥。
我的帖子没爆,服务器先爆了
当天晚上我先后在几个社区发了帖子:
  • 20:50:2Libra
  • 21:01:V2EX
  • 后来又发到了 Linux Bi

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

    两个相邻 IP 正在疯狂请求网站里的条目:
    103.197.30.225
    103.197.30.226
    主要目标是 /t/rping-cc。一共制造了大约 20 万次 Firewall Actions ,还顺手给“锐评”刷了接近 3,000 次“拉完了”。
    我做这个网站,本来是想让大家锐评互联网社区。上线第一天,网站自己先登上了「拉榜」榜首。

    拔电源吧
    我一开始没当回事儿,毕竟早就想过:有人乱搞的话,去管理后台关掉游客权限就行。
    没想到的是,攻击来的时候,我自己也进不去后台了。页面打不开,无奈只能直接改数据库,把游客评分和评论权限先关掉。权限改完,异常评分是不再增加了,但那两个 IP 还在继续请求,给服务器上强度。
    刚开始我其实没怎么生气,觉得网站刚上线就被打,也算是给自己上了一课,当个乐子看就好。我屏蔽了 IP 、加了防护规则,也在帖子里明确说了这件事。
    结果那个人并不打算到此为止。IP 被 ban 以后,它又换了 IP 继续捣乱,还注册了一个用户名叫 xjp 的账号,开始刷乱码评论。评分刷不动了,就改刷评论区。一共发了 128 条锐评,评论区被它刷得像乱码瀑布一样。
    这就不是乐子了,这人确实是坏种,这么干对你有什么好处呢?
    只能先拔电源,把服务关了。


    日志里的时间线
    后来我导出了攻击前后近两个小时的完整日志。这个客户端第一次出现是在:
    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 万多次攻击被放行。

    所以是 V 站用户干的吗?
    刚开始我怀疑是 linux bi 用户干的,毕竟我天天逛 v 站,默认把战里兄弟都当成高素质人群了,但是从日志上看,我开始怀疑是 v 站用户攻击的。
    V2EX 帖子发于 21:01 ,帖子里放的是专属链接 /t/v2ex;可疑客户端在 21:12:53 第一次出现,第一条请求刚好也是 /t/v2ex,23 秒后就开始测试刷票。时间和路径确实挺吻合。
    当然,我可定无法证明是某位 V2EX 用户,链接可能被转发,也可能通过别的方式传播,更没有证据指向某个具体账号,大家看个乐子得了。

    连夜补窟窿
    关站以后,我紧急补了几条安全规则。
    屏蔽攻击 IP ,开启 Attack Mode ,增加全站请求限流,给统计接口和详情页写操作单独限流,关闭游客评分和评论,清理异常数据,再检查一遍服务端校验和数据库约束。
    以前担心登录会劝退用户。现在觉得,劝退几个嫌麻烦的用户,总比把我劝退强。
    我之前为了让注册登录方便一点,还把 confirm email 关掉了。现在看来,这个开关还是得打开。要求用户确认邮箱,至少能给批量注册增加一点成本,不能再让脚本注册完账号就直接开刷。
    总结:Vibe Coding 路边一条
    这个网站 MVP 版本全靠 Vibe Coding 快速做出来的。
    上线几十分钟就被打爆了,我也低估了互联网上有些人的恶意,难怪很多论坛、社区都设置各种注册条件、发言条件。这都是被你们这帮坏种逼的。
    这次算是被互联网坏人上了一课,也提醒自己,敬畏技术,生产级的产品不是 AI 几下就能做出来的。
    目前已经重新上线。下次争取活久一点。

    网站, 攻击, 安全

  • YAFEIML   
    域名停放了
    winnerczwx   
    这个问题套一层 cf 就解决了啊
    gxlwm
    OP
      
    @YAFEIML 我写错了,是 rping.cc 不是 com - -
    gxlwm
    OP
      
    @winnerczwx 可是我是 vibe coding ,部署 vercel 一把梭啊,vercel 上也有防护,还要专门搞 cf 吗
    MrVito   
    这就不得不提到一句老话:害人之心不可有,防人之心不可无
    gxlwm
    OP
      
    @MrVito 学到了
    foryou2023   
    有些人天生“坏”,不过好在是少部分,不过也不得不防。
    sydneyJin   
    现实中能面对面的都直接插你的队,无视社会规则,更何况这互联网上
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部