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

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

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

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

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

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

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

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

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

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

    如果是 Serverless ,服务器软件环境自己无法控制,也可以用一些免费的云 WAF ,有免费额度那种。
    Rnreck
        56
    Rnreck  
       5 days ago
    @BeijingBaby 订阅了,但是好像没有退订的按钮诶
    BeijingBaby
        57
    BeijingBaby  
    PRO
       5 days ago
    @Rnreck 退订按钮在第一期内容发布后,页脚有的
    john1024
        58
    john1024  
       5 days ago
    你接个 Cloudflare 的验证码,就会好很多。它高频刷你的时候,就跳盾,跳验证。然后你说靠 vercel 自己防护,那就是基本什么也没有,裸奔啊。
    gxlwm
        59
    gxlwm  
    OP
       5 days ago
    @john1024 正在接呢,那个逼还在攻击
    john1024
        60
    john1024  
       5 days ago
    @gxlwm #59 直接套上 CloudFlare 小云朵吧,然后防火墙里面先限制速率,然后再慢慢改你这自定义 waf.
    john1024
        61
    john1024  
       5 days ago
    @gxlwm #59 网上这种人很多的。这种就是网络黑社会。他们 DDoS, CC 攻击的资源放在手里闲着也是闲着,有人敢冒头就顺手打一打。你这个已经算是很轻量的了,这个打的就拿两个 IP 打你,你就撑不住了,你要善用 CF 大善人的资源,配置好了 CF 。他就得动用自己的钱包来打你了,现在他肯定都没花什么钱攻击你
    ninjaJ
        62
    ninjaJ  
       5 days ago
    @gxlwm #4 套一层 cf 很方便的,一劳永逸
    qwqqwq
        63
    qwqqwq  
       5 days ago
    进去看了一下,你访问的域名正在出售,啥情况
    gxlwm
        64
    gxlwm  
    OP
       5 days ago
    @qwqqwq 正文里域名写错了
    john1024
        65
    john1024  
       5 days ago
    看了登录后默认的昵称不能改?快,coding 下,增加个改名功能
    gxlwm
        66
    gxlwm  
    OP
       5 days ago
    @john1024 你又不会经常访问,忍忍,下次一定
    majiajia
        67
    majiajia  
       4 days ago   ❤️ 2
    @wonderfulcxm #10 首先,不要受害者有罪论;其次,你要相信有些人天生贱种。
    asdhak
        68
    asdhak  
       4 days ago
    @xing7673 #33 你不说,鉴证,我还没反应过来这个简写🙃
    slqcode
        69
    slqcode  
       4 days ago
    在帮你测试呢
    Rliey
        70
    Rliey  
       4 days ago
    感觉要被 ai 中转站霸占了 当成推广站了
    furlxy
        71
    furlxy  
       4 days ago
    ufw
    敏感词过滤
    打开域名小云朵
    cf turnstile

    这些都需要加上

    防人之心不可无
    gxlwm
        72
    gxlwm  
    OP
       4 days ago
    @furlxy 不错不错,关键词学习
    gxlwm
        73
    gxlwm  
    OP
       4 days ago
    @Rliey 想多了,除了攻击我的那个人,没什么人访问
    cszchen
        74
    cszchen  
       4 days ago
    这个是 DDOS 共计,上面已经有很多大佬说过了
    我补充一条
    开放登录注册,如果是邮件,一定要屏蔽一些临时邮箱,github 上有很多持续更新的临时邮箱域名
    https://github.com/disposable-email-domains/disposable-email-domains
    gxlwm
        75
    gxlwm  
    OP
       4 days ago
    @cszchen 好滴,我看到攻击者用临时邮箱注册了几个号。我把用邮箱注册先关了。先只允许 google 、github 快捷登录
    jukanntenn
        76
    jukanntenn  
       3 days ago
    其实挺好的,就当免费压测。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1127 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 142ms · UTC 18:16 · PVG 02:16 · LAX 11:16 · JFK 14:16
    ♥ Do have faith in what you're doing.