爱意满满的作品展示区。
gxlwm

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

  •  
  •   gxlwm · 15h 34m ago · 4086 views

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

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

    夯 / 顶级 / 人上人 / 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 几下就能做出来的。

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

    Supplement 1  ·  5h 25m ago
    小丑,还在刷评论。
    你开心就好。
    Supplement 2  ·  3h 17m ago
    cf 接上了,看看效果
    66 replies    2026-08-16 23:02:47 +08:00
    YAFEIML
        1
    YAFEIML  
       15h 28m ago
    域名停放了
    winnerczwx
        2
    winnerczwx  
       15h 24m ago
    这个问题套一层 cf 就解决了啊
    gxlwm
        3
    gxlwm  
    OP
       15h 23m ago
    @YAFEIML 我写错了,是 rping.cc 不是 com - -
    gxlwm
        4
    gxlwm  
    OP
       15h 23m ago
    @winnerczwx 可是我是 vibe coding ,部署 vercel 一把梭啊,vercel 上也有防护,还要专门搞 cf 吗
    MrVito
        5
    MrVito  
       15h 0m ago   ❤️ 1
    这就不得不提到一句老话:害人之心不可有,防人之心不可无
    gxlwm
        6
    gxlwm  
    OP
       14h 55m ago
    @MrVito 学到了
    foryou2023
        7
    foryou2023  
       14h 37m ago
    有些人天生“坏”,不过好在是少部分,不过也不得不防。
    sydneyJin
        8
    sydneyJin  
       14h 36m ago
    现实中能面对面的都直接插你的队,无视社会规则,更何况这互联网上
    jkjoke
        9
    jkjoke  
       14h 29m ago
    以前做了个聊天室,网友天天给我 xss 压力测试
    wonderfulcxm
        10
    wonderfulcxm  
       14h 29m ago via iPhone
    为什么要攻击这种刚上线的没有一点名气的小网站,换 ip 也要成本吧?应该是你得罪了人
    gxlwm
        11
    gxlwm  
    OP
       14h 27m ago
    @wonderfulcxm 我没得罪过人额
    wwmmkk
        12
    wwmmkk  
       14h 20m ago via iPhone
    这也太没素质了啊
    soulflysimple123
        13
    soulflysimple123  
       14h 15m ago
    老哥你这网站起码要接入 cloudeflare Turnstile
    BeijingBaby
        14
    BeijingBaby  
    PRO
       14h 12m ago via iPhone
    一样的😂 www.dev.com.cn 上个月被攻击过,不过后来处理好了,也没持续攻击,我就没发出来。也是不明白一个非盈利小站怎么会被攻击的。
    gxlwm
        15
    gxlwm  
    OP
       14h 8m ago
    @soulflysimple123 已经在 Vercel 设置了一些防火墙规则,并且设置了超出 5 美刀就停止服务,无所谓,破不了产。回头了解一下 CF
    gxlwm
        16
    gxlwm  
    OP
       14h 7m ago
    @BeijingBaby 不错不错,订阅一个
    zpxshl
        17
    zpxshl  
       14h 3m ago via Android
    一堆现实里面过得太压抑的坏种
    yidev
        18
    yidev  
       13h 26m ago
    打算做网站就要掌握一些基础的网络防护, 而不是靠谴责, 这种是 cc 攻击了. 可以让 AI 在入口都地方加个防火墙. 同一个 IP 或者同一个 Useragent 连续访问的频率超过阈值就 ban 掉. 或者弹出验证码才能继续. 最好从 nginx 里 ban
    lefer
        19
    lefer  
       13h 4m ago
    互联网释放了藏匿于心中的恶。

    也许那个攻击者有一份正经的工作,有一个幸福的家庭,但不妨碍他“找点乐子”。
    onling
        20
    onling  
       13h 3m ago
    之前也某名被恭喜过一次,感觉网站也不出门,就是不知道这些攻击的目的
    billzhuang
        21
    billzhuang  
       12h 18m ago
    有人攻击总比无人问津强一百倍
    kidult
        22
    kidult  
       12h 6m ago
    换种角度,别人花钱让你学习呢,真要是赚钱的网站,这么搞一下就凉了
    moefishtang
        23
    moefishtang  
       12h 0m ago
    @yidev (也别让 AI 自己 Vibe 防火墙出来了...不行 AI 部署个阿努比斯之类的 WAF ,自己安装也不难的...
    Y25tIGxpdmlk
        24
    Y25tIGxpdmlk  
       11h 43m ago   ❤️ 1
    我总结出来的方法:如果你的主要用户是国内的,就直接把国外 IP 通通禁用就好了,立竿见影,基本上刚坏事的,百分百都是挂国外 IP 。

    国内实名制,还有国内代理 ip 的价格,已经帮我把那些恶意用户通通筛选掉了。

    之前网站还经常被各种 thinkphp 的漏洞扫描突破啥的,自从我把全部国外 ip 一禁,再也没有出国一点事了。轻轻松松
    gxlwm
        25
    gxlwm  
    OP
       11h 42m ago
    @yidev 这是复盘和自省,我的核心主旨是敬畏技术,一个没有基础认知的人 vibe coding 出来的东西不可靠。相关知识还得了解,不是有 AI 就厉害了。如果没有这次被攻击,我不会把网络安全当回事儿。
    如果不是 Vercel 自动帮我拦截了 16w 请求,如果我去睡觉了没发现,今天早上醒来我应该已经欠了 200 美金了,因为 vercel pro 允许超额 200 美金才停机。
    gxlwm
        26
    gxlwm  
    OP
       11h 42m ago
    @kidult 学到了一点网络安全认知
    davidyin
        27
    davidyin  
       11h 42m ago via Android
    实现网站功能的代码只占全部代码 1/3 都不到,其它的各种验证,防护,防机器人,防恶意。
    Y25tIGxpdmlk
        28
    Y25tIGxpdmlk  
       11h 41m ago
    话说你这前端界面的分割是不是 claude 写的,感觉 claude 弄的前端默认就这种味道
    gxlwm
        29
    gxlwm  
    OP
       11h 41m ago
    @Y25tIGxpdmlk 学到了
    davidyin
        30
    davidyin  
       11h 40m ago via Android
    @Y25tIGxpdmlk

    其实也不一定的,最近一些来刷我的一个论坛的就是联通甘肃那边的 IP 。还挺执着。
    gxlwm
        31
    gxlwm  
    OP
       11h 39m ago
    @davidyin 这个我掉以轻心了,我还专门把权限放宽送了
    gxlwm
        32
    gxlwm  
    OP
       11h 38m ago
    @Y25tIGxpdmlk 不是,我 cc 早被封了,用 claude design 的插件设计的,我千挑万选了一个纸媒风格然后我自己又微调了挺多。还是 AI 味儿这么重吗?
    xing7673
        33
    xing7673  
       11h 37m ago
    取 id xjp 的不就是那种现实压抑的鉴证恶臭玩意。没爹教没妈养
    liuliuliuliu
        34
    liuliuliuliu  
       11h 33m ago
    真有人这么闲吗?
    gxlwm
        35
    gxlwm  
    OP
       11h 33m ago
    @xing7673 第一次这个人攻击我的网站,还可以接受,我本来网站权限放的宽松,被人人便爆破一下是我活该。
    但是我升级了防护措施和增加了攻击门槛后,他还专门注册账号,敏感 id ,刷评论,就纯恶心人了。
    liuliuliuliu
        36
    liuliuliuliu  
       11h 31m ago
    @BeijingBaby 卧槽,这域名牛逼,花了多少钱?
    gxlwm
        37
    gxlwm  
    OP
       11h 28m ago
    @liuliuliuliu 我不懂网络攻击,感觉那个人可能挂了个比较智能的脚本吧,然后就去睡觉了,我觉得应该不会有人无聊到盯着我的网站爆破了。
    因为最初的 2 个 ip 会刷评分,我关了网站,收紧网站权限后再次上线,那两个 ip 还在一直做网络请求。
    我把 ip ban 了,还会换 ip ,开始刷评论。
    难道是有人像通过现实教育让我敬畏网络安全?
    jacketma
        38
    jacketma  
       11h 7m ago
    是不有一些小朋友专门来练手的啊,不求收益多大,但求恶搞好玩
    davidyin
        39
    davidyin  
       10h 15m ago via Android
    其实攻击也挺费钱的。
    不费钱的就费时间。

    估计是个不差钱不差时间的主。
    gxlwm
        40
    gxlwm  
    OP
       10h 7m ago
    @jacketma 没轻没重得,要不是 vercel 有基础防火墙,我已经损失 200 美刀了- -
    Ryanzlab
        41
    Ryanzlab  
       9h 52m ago
    DDOS 和你是不是 vibe coding 没关系,你全程古法,在巨量 DDOS 的情况下一样死
    Cbdy
        42
    Cbdy  
       9h 52m ago
    现在这个网站怎么打不开了?
    Ryanzlab
        43
    Ryanzlab  
       9h 50m ago
    这玩意搞一个 cloudflare 免费就帮你防御了,你不漏源站 IP ,神仙来了也没事,开个 5 秒盾,防御大部分攻击了
    gxlwm
        44
    gxlwm  
    OP
       9h 46m ago
    @Cbdy 因为我链接贴错了 /dog ,https://rping.cc
    ntedshen
        45
    ntedshen  
       9h 39m ago
    这年头的闲人就这样。。。他打你没啥成本,你防他得出钱。。。
    我自己写的小黄网我自己朋友都不给地址。。。
    gxlwm
        46
    gxlwm  
    OP
       9h 38m ago
    @ntedshen 哥,给我看看,我不外传
    opengps
        47
    opengps  
       9h 32m ago
    虽然 v 站的整体素质不错,不过你得知道一个事情,很多人遇到了打开的网站,职业习惯就是压测一下找找漏洞,这虽然是个好的技术习惯,但并不是受网站主欢迎的
    Ericcccccccc
        48
    Ericcccccccc  
       7h 38m ago
    现在有 ai 之后,零成本搞破坏。你不防一下根本不行
    labubu
        49
    labubu  
       7h 31m ago
    CF 专治不服
    lusyoe
        50
    lusyoe  
       7h 29m ago
    在技术论坛推广就是会出现这种情况,是有很多闲人喜欢炫技的~
    xue777hua
        51
    xue777hua  
       7h 28m ago via iPhone
    15 分钟 3000 次请求 就顶不住了?

    1 秒也就 3 次请求?
    xue777hua
        52
    xue777hua  
       7h 26m ago via iPhone
    哦 看到后面 看到了 算是很好的经历 文章也精彩 👍
    OnceUponATime
        53
    OnceUponATime  
       7h 23m ago
    匿名性确实会助长不道德行为。天朝在这方面属于是误打误撞了。
    wKong753900
        54
    wKong753900  
       7h 19m ago
    我觉得也算是一次挺宝贵的经验了吧
    onice
        55
    onice  
       7h 15m ago
    对待这种坏人,直接上个 waf 就行了。用 nginx 做前端流量入口,配置下安全狗就行。

    见: https://www.safedog.cn/website_safedog.html

    如果是 Serverless ,服务器软件环境自己无法控制,也可以用一些免费的云 WAF ,有免费额度那种。
    Rnreck
        56
    Rnreck  
       4h 10m ago
    @BeijingBaby 订阅了,但是好像没有退订的按钮诶
    BeijingBaby
        57
    BeijingBaby  
    PRO
       4h 8m ago
    @Rnreck 退订按钮在第一期内容发布后,页脚有的
    john1024
        58
    john1024  
       4h 2m ago
    你接个 Cloudflare 的验证码,就会好很多。它高频刷你的时候,就跳盾,跳验证。然后你说靠 vercel 自己防护,那就是基本什么也没有,裸奔啊。
    gxlwm
        59
    gxlwm  
    OP
       4h 0m ago
    @john1024 正在接呢,那个逼还在攻击
    john1024
        60
    john1024  
       3h 58m ago
    @gxlwm #59 直接套上 CloudFlare 小云朵吧,然后防火墙里面先限制速率,然后再慢慢改你这自定义 waf.
    john1024
        61
    john1024  
       3h 55m ago
    @gxlwm #59 网上这种人很多的。这种就是网络黑社会。他们 DDoS, CC 攻击的资源放在手里闲着也是闲着,有人敢冒头就顺手打一打。你这个已经算是很轻量的了,这个打的就拿两个 IP 打你,你就撑不住了,你要善用 CF 大善人的资源,配置好了 CF 。他就得动用自己的钱包来打你了,现在他肯定都没花什么钱攻击你
    ninjaJ
        62
    ninjaJ  
       3h 35m ago
    @gxlwm #4 套一层 cf 很方便的,一劳永逸
    qwqqwq
        63
    qwqqwq  
       3h 1m ago
    进去看了一下,你访问的域名正在出售,啥情况
    gxlwm
        64
    gxlwm  
    OP
       2h 59m ago
    @qwqqwq 正文里域名写错了
    john1024
        65
    john1024  
       2h 8m ago
    看了登录后默认的昵称不能改?快,coding 下,增加个改名功能
    gxlwm
        66
    gxlwm  
    OP
       1h 56m ago
    @john1024 你又不会经常访问,忍忍,下次一定
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1275 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 118ms · UTC 16:59 · PVG 00:59 · LAX 09:59 · JFK 12:59
    ♥ Do have faith in what you're doing.