vlog
← 返回全部文章

Tech

他做了个给互联网社区打分的网站,上线当晚,网站在自家差评榜上登顶

2026年8月17日 · 凯文·凯利《失控》~1 min read

专门给互联网社区打分的网站「锐评」,上线第一晚就在自家差评榜登了顶:自己的条目被刷了近 3,000 次「拉完了」。刷榜的不是仇家,是脚本。作者把整晚日志整理出来发上 V2EX,66 条回复里我只盯一个数:对方从进站到打出第一发,只隔 23 秒。

30 秒读懂
1开门

他做了个给社区打分的网站,把所有门都敞着

网站本身没毛病,毛病在门。

「锐评」(rping.com)干的事很简单:给各家互联网社区打分,分五档:夯、顶级、人上人、NPC、拉完了。托管在 Vercel,典型的 Vibe Coding 小项目,能跑就行的路子,我熟。

关键在权限:游客不用登录,评分、评论全开。作者当时的预案,原话是这么一句:「真有人乱搞的话,我再去后台关掉游客权限。」眼熟吧?我敢说单干做站的人,十个里有九个在心里写过一模一样的预案,包括我。

⚡

为什么值得看:这事儿吧,论损失不算大事故,难得的是一份预案的尸检报告。「出事我再去关」这句人人写过的话,这回有完整日志记下它是怎么失效的,精确到秒。

2时间线

从进站到开火,对方只用了 23 秒

日志把两种时间尺度摆在了同一张表上。

时刻事件
20:50作者把网站发到 2Libra
21:01发到 V2EX
21:12:53攻击客户端首次出现(GET /t/v2ex)
21:13:09GET /t/rping-cc
21:13:16第一个脚本 POST 发出
核心

脚本跑在机器的时间尺度,预案跑在人的时间尺度。23 秒对上「几分钟起步」,这一仗在预案写下那天就定了输赢。

23 秒里对方翻完两个页面、摸清接口、脚本就位。那两次 GET 也值得看一眼:先翻的是 V2EX 的条目页,再翻「锐评」自己的条目页,7 秒后第一个 POST 砸向的就是后者。踩点、选靶、开火,一气呵成。后来那近 3,000 次「拉完了」,全灌进了这个条目。

再看预案这边要走的路:人得先发现异常,再打开电脑、登上后台、找到开关。哪一步不按分钟算?

3同生死

「我再去后台关掉」必然失败:后台跟网站住在同一间房

开关是有的,出事那晚够不着。

攻击最凶时他想起预案,去开管理后台,打不开。两个相邻 IP(103.197.30.225 和 226)合计约 20 万次 Firewall Actions 砸下来,站点瘫了;后台是站点的一部分,跟着一起瘫。他最后绕开自己做的一切,直接连数据库把游客权限关掉,等于砸自家窗户进屋拿灭火器。幸亏连库这条路没走后台,不然这晚只剩干瞪眼。

预案里的剧本

有人乱搞 → 打开后台 → 点一下,关掉游客权限。整个流程立在一个前提上:后台还开得开。

当晚的实况

站点被打瘫,后台同步瘫。控制通道跟暴露面焊在一起,一起失效,剩下的活路只有数据库直连。

这亏我 2022 年吃过同款:SaaS 服务器忘续费,凌晨两点被三个跨境卖家用户微信连环轰炸。从那以后我的续费提醒设三层,支付宝自动扣款、手机日历、冰箱上一块写日期的白板贴,三层故意用三种不搭界的东西,手机瘫了冰箱那块还站着岗。后台跟站点放在同一处,就跟三层提醒全设在同一部手机里一样,出事一锅端。

FROM FORUM POST TO FIRST SCRIPTED ATTACK: 23 SECONDS AFTER ARRIVAL20:5021:0121:12:5321:13:1623 sposted to 2Librathe first communityposted to V2EXattack client first seenGET /t/v2exfirst scripted POSTAFTER THE FIRST POST · THE ESCALATION2 neighbouring IPs≈200,000 firewall blocks≈3,000 bottom voteson the site's own entryall: “拉完了” (trash)ban → IP switch128 garbled commentsPull the plugthe service goes darkThe plan: “if trouble comes, I'll shut it down from the admin panel.”During the attack the panel itself wouldn't open — control dies with the site.attack escalationthe human plan (failed)
Source: the V2EX post “How a vibe-coding site got hammered within tens of minutes of launch”. Scripts run on machine time; human contingency plans run on human time — 23 seconds is the gap between the two.
4免疫

《失控》的判词:免疫要预先长在身体里,不能等人赶到现场

凯文·凯利三十年前写下的道理,正好盖在这晚的日志上。

《失控》讲活系统为什么稳健:靠预先内建、分布在各处的免疫,中央事后干预注定慢一拍。书里蜂群选新巢那段讲得透:没有哪只蜂在指挥,规则长在每只蜂身上,群体照样把事办成。这套结构里没有指挥室,也就没有「指挥室被打瘫」这回事。

打个比方

你手指划了个口子,白细胞当场就上,不给大脑打报告、不等批示。要是免疫的流程是「发现细菌,上报,等大脑开会决定派不派兵」,人熬不过一次普通感冒。皮肤、胃酸、白细胞,全是出厂就装好、蹲在现场的开关。

「我再去后台关」是标准的中央干预:所有异常汇总到「我」这个单点,等「我」注意到、赶到、动手。可「我」当晚在刷回复、在过人的日子。限流、验证码、游客默认只读,这些才是长在站点身体里的白细胞:一点都不聪明,但蹲在现场,不用等谁醒。这也谈不上什么高配,Vercel 的防火墙规则、接口上的频率限制,都是现成零件,装不装而已。

5流水线

封了 IP 对方就换 IP,跟你过招的从来是一套流程

人会累会收手,脚本不会。

权限关了、IP 封了,事情没完。对方换个 IP 再进来,这回注册了账号,刷下 128 条乱码评论,评论区成了乱码瀑布。换 IP 对守的人是道坎,对攻的人是改一行配置。作者最后的动作是把服务整个关停,拔电源。

你别看动作像一个人在跟你怄气,其实那是一套现成流程:探测、打接口、封了换 IP、游客路堵死就走注册路。哪条通走哪条,跟水找缝一个道理。你每堵一下,对面自动补位,人力守门守不过夜。

口径:约 20 万次 Firewall Actions、近 3,000 次「拉完了」、128 条乱码评论与各时间点,均出自原帖作者贴出的日志与自述,本文未独立核验,细节以原帖为准。
6设计题

上线前把「出事那天我怎么够得着开关」当一道设计题做

四个问题,上线前过一遍就行。

一问游客权限:默认只读,等限流就位再放开写。二问限流:Vercel 这类平台自带防火墙规则,上线前点几下的事,别等挨了打才翻文档。三问后台:站瘫了,我的开关还够得着吗?后台别跟站点共一条命,哪怕留一条数据库直连的脚本也算活路。四问降级:预先做个「一键只读」,拔电源该是最后一档,不该是唯一一档。

核心

「出事那天怎么够得着开关」是设计题,得在上线前答完。出事那天你只来得及按开关,来不及装开关。

这账我自己算过。2020 年我那 SaaS 有个让用户传图的口,平台规则是图出了事按次扣两万保证金,接的审核接口一年不到三百,也兜不住漏网的那一张。我把上传口直接关了,只留一百二十七张模板图,群里有人问,我回了四个字:我赔不起。门开不开是生意题,开了之后出事那天够不够得着关,是上线前就得答完的题。「锐评」那晚最后的活路,是碰巧还连得上数据库。你的活路是哪条,别等到那天现找。

本文取材自凯文·凯利《失控》中关于分布式免疫与去中心化控制的公开论述,为个人解读。事件经过、时间线与各项数字出自 V2EX 帖《一个 Vibe Coding 网站是怎么在上线几十分钟内被打爆的》的作者自述,细节以原帖为准。本文不构成安全或运维建议。

技术

他做了个给互联网社区打分的网站,上线当晚,网站在自家差评榜上登顶

2026年8月17日 · 凯文·凯利《失控》约 6 分钟

专门给互联网社区打分的网站「锐评」,上线第一晚就在自家差评榜登了顶:自己的条目被刷了近 3,000 次「拉完了」。刷榜的不是仇家,是脚本。作者把整晚日志整理出来发上 V2EX,66 条回复里我只盯一个数:对方从进站到打出第一发,只隔 23 秒。

30 秒读懂
1开门

他做了个给社区打分的网站,把所有门都敞着

网站本身没毛病,毛病在门。

「锐评」(rping.com)干的事很简单:给各家互联网社区打分,分五档:夯、顶级、人上人、NPC、拉完了。托管在 Vercel,典型的 Vibe Coding 小项目,能跑就行的路子,我熟。

关键在权限:游客不用登录,评分、评论全开。作者当时的预案,原话是这么一句:「真有人乱搞的话,我再去后台关掉游客权限。」眼熟吧?我敢说单干做站的人,十个里有九个在心里写过一模一样的预案,包括我。

⚡

为什么值得看:这事儿吧,论损失不算大事故,难得的是一份预案的尸检报告。「出事我再去关」这句人人写过的话,这回有完整日志记下它是怎么失效的,精确到秒。

2时间线

从进站到开火,对方只用了 23 秒

日志把两种时间尺度摆在了同一张表上。

时刻事件
20:50作者把网站发到 2Libra
21:01发到 V2EX
21:12:53攻击客户端首次出现(GET /t/v2ex)
21:13:09GET /t/rping-cc
21:13:16第一个脚本 POST 发出
核心

脚本跑在机器的时间尺度,预案跑在人的时间尺度。23 秒对上「几分钟起步」,这一仗在预案写下那天就定了输赢。

23 秒里对方翻完两个页面、摸清接口、脚本就位。那两次 GET 也值得看一眼:先翻的是 V2EX 的条目页,再翻「锐评」自己的条目页,7 秒后第一个 POST 砸向的就是后者。踩点、选靶、开火,一气呵成。后来那近 3,000 次「拉完了」,全灌进了这个条目。

再看预案这边要走的路:人得先发现异常,再打开电脑、登上后台、找到开关。哪一步不按分钟算?

3同生死

「我再去后台关掉」必然失败:后台跟网站住在同一间房

开关是有的,出事那晚够不着。

攻击最凶时他想起预案,去开管理后台,打不开。两个相邻 IP(103.197.30.225 和 226)合计约 20 万次 Firewall Actions 砸下来,站点瘫了;后台是站点的一部分,跟着一起瘫。他最后绕开自己做的一切,直接连数据库把游客权限关掉,等于砸自家窗户进屋拿灭火器。幸亏连库这条路没走后台,不然这晚只剩干瞪眼。

预案里的剧本

有人乱搞 → 打开后台 → 点一下,关掉游客权限。整个流程立在一个前提上:后台还开得开。

当晚的实况

站点被打瘫,后台同步瘫。控制通道跟暴露面焊在一起,一起失效,剩下的活路只有数据库直连。

这亏我 2022 年吃过同款:SaaS 服务器忘续费,凌晨两点被三个跨境卖家用户微信连环轰炸。从那以后我的续费提醒设三层,支付宝自动扣款、手机日历、冰箱上一块写日期的白板贴,三层故意用三种不搭界的东西,手机瘫了冰箱那块还站着岗。后台跟站点放在同一处,就跟三层提醒全设在同一部手机里一样,出事一锅端。

从发帖到第一发脚本攻击:进站后只隔 23 秒20:5021:0121:12:5321:13:1623 秒发帖到 2Libra第一个社区发帖到 V2EX攻击客户端首次现身GET /t/v2ex第一发脚本 POST第一发 POST 之后 · 步步升级两个相邻 IP约 20 万次防火墙拦截近 3,000 条最低差评目标是网站自己的条目清一色刷『拉完了』封 IP → 换 IP刷来 128 条乱码评论站长拔了电源服务就此关停预案:『出事了我再去后台关』攻击期间后台自己也打不开——控制通道与站点同生死攻击升级人的预案(失效)
来源:V2EX 帖《一个 Vibe Coding 网站是怎么在上线几十分钟内被打爆的》。脚本跑在机器时间尺度上,人的预案跑在人的时间尺度上——23 秒就是两者的差距。
4免疫

《失控》的判词:免疫要预先长在身体里,不能等人赶到现场

凯文·凯利三十年前写下的道理,正好盖在这晚的日志上。

《失控》讲活系统为什么稳健:靠预先内建、分布在各处的免疫,中央事后干预注定慢一拍。书里蜂群选新巢那段讲得透:没有哪只蜂在指挥,规则长在每只蜂身上,群体照样把事办成。这套结构里没有指挥室,也就没有「指挥室被打瘫」这回事。

打个比方

你手指划了个口子,白细胞当场就上,不给大脑打报告、不等批示。要是免疫的流程是「发现细菌,上报,等大脑开会决定派不派兵」,人熬不过一次普通感冒。皮肤、胃酸、白细胞,全是出厂就装好、蹲在现场的开关。

「我再去后台关」是标准的中央干预:所有异常汇总到「我」这个单点,等「我」注意到、赶到、动手。可「我」当晚在刷回复、在过人的日子。限流、验证码、游客默认只读,这些才是长在站点身体里的白细胞:一点都不聪明,但蹲在现场,不用等谁醒。这也谈不上什么高配,Vercel 的防火墙规则、接口上的频率限制,都是现成零件,装不装而已。

5流水线

封了 IP 对方就换 IP,跟你过招的从来是一套流程

人会累会收手,脚本不会。

权限关了、IP 封了,事情没完。对方换个 IP 再进来,这回注册了账号,刷下 128 条乱码评论,评论区成了乱码瀑布。换 IP 对守的人是道坎,对攻的人是改一行配置。作者最后的动作是把服务整个关停,拔电源。

你别看动作像一个人在跟你怄气,其实那是一套现成流程:探测、打接口、封了换 IP、游客路堵死就走注册路。哪条通走哪条,跟水找缝一个道理。你每堵一下,对面自动补位,人力守门守不过夜。

口径:约 20 万次 Firewall Actions、近 3,000 次「拉完了」、128 条乱码评论与各时间点,均出自原帖作者贴出的日志与自述,本文未独立核验,细节以原帖为准。
6设计题

上线前把「出事那天我怎么够得着开关」当一道设计题做

四个问题,上线前过一遍就行。

一问游客权限:默认只读,等限流就位再放开写。二问限流:Vercel 这类平台自带防火墙规则,上线前点几下的事,别等挨了打才翻文档。三问后台:站瘫了,我的开关还够得着吗?后台别跟站点共一条命,哪怕留一条数据库直连的脚本也算活路。四问降级:预先做个「一键只读」,拔电源该是最后一档,不该是唯一一档。

核心

「出事那天怎么够得着开关」是设计题,得在上线前答完。出事那天你只来得及按开关,来不及装开关。

这账我自己算过。2020 年我那 SaaS 有个让用户传图的口,平台规则是图出了事按次扣两万保证金,接的审核接口一年不到三百,也兜不住漏网的那一张。我把上传口直接关了,只留一百二十七张模板图,群里有人问,我回了四个字:我赔不起。门开不开是生意题,开了之后出事那天够不够得着关,是上线前就得答完的题。「锐评」那晚最后的活路,是碰巧还连得上数据库。你的活路是哪条,别等到那天现找。

本文取材自凯文·凯利《失控》中关于分布式免疫与去中心化控制的公开论述,为个人解读。事件经过、时间线与各项数字出自 V2EX 帖《一个 Vibe Coding 网站是怎么在上线几十分钟内被打爆的》的作者自述,细节以原帖为准。本文不构成安全或运维建议。

テクノロジー

他做了个给互联网社区打分的网站,上线当晚,网站在自家差评榜上登顶

2026年8月17日 · 凯文·凯利《失控》約 6 分

专门给互联网社区打分的网站「锐评」,上线第一晚就在自家差评榜登了顶:自己的条目被刷了近 3,000 次「拉完了」。刷榜的不是仇家,是脚本。作者把整晚日志整理出来发上 V2EX,66 条回复里我只盯一个数:对方从进站到打出第一发,只隔 23 秒。

30 秒读懂
1开门

他做了个给社区打分的网站,把所有门都敞着

网站本身没毛病,毛病在门。

「锐评」(rping.com)干的事很简单:给各家互联网社区打分,分五档:夯、顶级、人上人、NPC、拉完了。托管在 Vercel,典型的 Vibe Coding 小项目,能跑就行的路子,我熟。

关键在权限:游客不用登录,评分、评论全开。作者当时的预案,原话是这么一句:「真有人乱搞的话,我再去后台关掉游客权限。」眼熟吧?我敢说单干做站的人,十个里有九个在心里写过一模一样的预案,包括我。

⚡

为什么值得看:这事儿吧,论损失不算大事故,难得的是一份预案的尸检报告。「出事我再去关」这句人人写过的话,这回有完整日志记下它是怎么失效的,精确到秒。

2时间线

从进站到开火,对方只用了 23 秒

日志把两种时间尺度摆在了同一张表上。

时刻事件
20:50作者把网站发到 2Libra
21:01发到 V2EX
21:12:53攻击客户端首次出现(GET /t/v2ex)
21:13:09GET /t/rping-cc
21:13:16第一个脚本 POST 发出
核心

脚本跑在机器的时间尺度,预案跑在人的时间尺度。23 秒对上「几分钟起步」,这一仗在预案写下那天就定了输赢。

23 秒里对方翻完两个页面、摸清接口、脚本就位。那两次 GET 也值得看一眼:先翻的是 V2EX 的条目页,再翻「锐评」自己的条目页,7 秒后第一个 POST 砸向的就是后者。踩点、选靶、开火,一气呵成。后来那近 3,000 次「拉完了」,全灌进了这个条目。

再看预案这边要走的路:人得先发现异常,再打开电脑、登上后台、找到开关。哪一步不按分钟算?

3同生死

「我再去后台关掉」必然失败:后台跟网站住在同一间房

开关是有的,出事那晚够不着。

攻击最凶时他想起预案,去开管理后台,打不开。两个相邻 IP(103.197.30.225 和 226)合计约 20 万次 Firewall Actions 砸下来,站点瘫了;后台是站点的一部分,跟着一起瘫。他最后绕开自己做的一切,直接连数据库把游客权限关掉,等于砸自家窗户进屋拿灭火器。幸亏连库这条路没走后台,不然这晚只剩干瞪眼。

预案里的剧本

有人乱搞 → 打开后台 → 点一下,关掉游客权限。整个流程立在一个前提上:后台还开得开。

当晚的实况

站点被打瘫,后台同步瘫。控制通道跟暴露面焊在一起,一起失效,剩下的活路只有数据库直连。

这亏我 2022 年吃过同款:SaaS 服务器忘续费,凌晨两点被三个跨境卖家用户微信连环轰炸。从那以后我的续费提醒设三层,支付宝自动扣款、手机日历、冰箱上一块写日期的白板贴,三层故意用三种不搭界的东西,手机瘫了冰箱那块还站着岗。后台跟站点放在同一处,就跟三层提醒全设在同一部手机里一样,出事一锅端。

投稿から最初のスクリプト攻撃まで:到着からわずか23秒20:5021:0121:12:5321:13:1623秒2Libraに投稿最初のコミュニティV2EXに投稿攻撃クライアント初出現GET /t/v2ex最初のスクリプトPOST最初のPOSTの後 · エスカレーション隣接する2つのIPFW遮断は約20万回最低評価3,000件標的はサイト自身の項目一律「拉完了」評価遮断 → IP変更文字化けコメント128件電源を抜いたサービスはここで停止想定:「何かあれば管理画面から止める」攻撃中は管理画面自体も開かず——制御経路はサイトと共倒れ攻撃の進行人間側の想定(機能せず)
出典:V2EX の投稿『一个 Vibe Coding 网站是怎么在上线几十分钟内被打爆的』——内容は元の投稿・報道に準じる。スクリプトは機械の時間尺度で動き、人間の想定は人間の時間尺度で動く——その差が23秒だ。
4免疫

《失控》的判词:免疫要预先长在身体里,不能等人赶到现场

凯文·凯利三十年前写下的道理,正好盖在这晚的日志上。

《失控》讲活系统为什么稳健:靠预先内建、分布在各处的免疫,中央事后干预注定慢一拍。书里蜂群选新巢那段讲得透:没有哪只蜂在指挥,规则长在每只蜂身上,群体照样把事办成。这套结构里没有指挥室,也就没有「指挥室被打瘫」这回事。

打个比方

你手指划了个口子,白细胞当场就上,不给大脑打报告、不等批示。要是免疫的流程是「发现细菌,上报,等大脑开会决定派不派兵」,人熬不过一次普通感冒。皮肤、胃酸、白细胞,全是出厂就装好、蹲在现场的开关。

「我再去后台关」是标准的中央干预:所有异常汇总到「我」这个单点,等「我」注意到、赶到、动手。可「我」当晚在刷回复、在过人的日子。限流、验证码、游客默认只读,这些才是长在站点身体里的白细胞:一点都不聪明,但蹲在现场,不用等谁醒。这也谈不上什么高配,Vercel 的防火墙规则、接口上的频率限制,都是现成零件,装不装而已。

5流水线

封了 IP 对方就换 IP,跟你过招的从来是一套流程

人会累会收手,脚本不会。

权限关了、IP 封了,事情没完。对方换个 IP 再进来,这回注册了账号,刷下 128 条乱码评论,评论区成了乱码瀑布。换 IP 对守的人是道坎,对攻的人是改一行配置。作者最后的动作是把服务整个关停,拔电源。

你别看动作像一个人在跟你怄气,其实那是一套现成流程:探测、打接口、封了换 IP、游客路堵死就走注册路。哪条通走哪条,跟水找缝一个道理。你每堵一下,对面自动补位,人力守门守不过夜。

口径:约 20 万次 Firewall Actions、近 3,000 次「拉完了」、128 条乱码评论与各时间点,均出自原帖作者贴出的日志与自述,本文未独立核验,细节以原帖为准。
6设计题

上线前把「出事那天我怎么够得着开关」当一道设计题做

四个问题,上线前过一遍就行。

一问游客权限:默认只读,等限流就位再放开写。二问限流:Vercel 这类平台自带防火墙规则,上线前点几下的事,别等挨了打才翻文档。三问后台:站瘫了,我的开关还够得着吗?后台别跟站点共一条命,哪怕留一条数据库直连的脚本也算活路。四问降级:预先做个「一键只读」,拔电源该是最后一档,不该是唯一一档。

核心

「出事那天怎么够得着开关」是设计题,得在上线前答完。出事那天你只来得及按开关,来不及装开关。

这账我自己算过。2020 年我那 SaaS 有个让用户传图的口,平台规则是图出了事按次扣两万保证金,接的审核接口一年不到三百,也兜不住漏网的那一张。我把上传口直接关了,只留一百二十七张模板图,群里有人问,我回了四个字:我赔不起。门开不开是生意题,开了之后出事那天够不够得着关,是上线前就得答完的题。「锐评」那晚最后的活路,是碰巧还连得上数据库。你的活路是哪条,别等到那天现找。

本文取材自凯文·凯利《失控》中关于分布式免疫与去中心化控制的公开论述,为个人解读。事件经过、时间线与各项数字出自 V2EX 帖《一个 Vibe Coding 网站是怎么在上线几十分钟内被打爆的》的作者自述,细节以原帖为准。本文不构成安全或运维建议。