卡兹克大佬网站被攻击?新手Vibe Coding上线安全指南!保姆级教程

大家好,我是卡卡罗特。

AI赛道头部大V卡兹克做了一个实时抓取最新AI信息的网站,叫 AI Hot。

网站流量大增之后,很快就遭到了黑客攻击。这两天也有人一直在攻击他的网站。

他也是边干边学,然后这个网站才逐渐稳定。

其实这也是多数非程序员Vibe Coding项目(尤其是web项目),开放出来给大众用,必然要踩坑的地方。

现在用 AI Vibe Coding,确实能做出一个很好看、功能也很全的网站。

但是如果你真的想把它投入使用,上线给很多人用,甚至达到企业级的标准,难度还是挺大的。

因为这个里面会碰到很多问题,包括代码问题、安全问题、部署问题.....,而且很多问题你压根没听过。你也就无从下手怎么去解决这些问题了。


所以这篇文章就以卡兹克这个web项目为例,从安全角度出发跟大家分享一下,一个真正对外服务的项目,从准备到上线需要采做哪些安全措施?

上线前

Web项目都需要单独部署在一台服务器上。

服务器在主流的云服务器厂商都可以买得到,比如说腾讯云、阿里云....。

如果你是新手,直接买最便宜的就行了。

1. 服务器和端口

购买之后你会得到一个服务器的IP,比如123.123.45.678

还需要你设置一个root用户的密码。有了IP + 密码之后,就可以远程访问了。

这里密码一定要设置复杂一点,不然很可能会被别人爆破出来。

比如网站一般只需要开放 80 和 443。

SSH 使用的 22 端口也可以限制为只有自己的固定 IP 才能访问。

数据库的 3306、Redis 的 6379,更不能直接暴露在公网。

不然很容易被别人爆破密码,很危险!


2. 域名、备案和 HTTPS

域名

有了服务器之后,相当于有了一个 IP。

如果你要给其他人访问,其实也是可以的,但是要通过 IP 加端口这种方式访问。

比如通过 123.123.45.678:8080 这种方式进行访问,那肯定不行。

用户肯定不愿意记这种数字 IP,而且这样也没有品牌形象。

所以肯定要买一个域名,比如 www.baidu.com,这里的 baidu.com 就是域名。

有了这个域名之后,你就不用记住对应的 IP 了。

比如卡兹克他们公司的域名是:virxact.com

备案

如果服务器放在中国内地,网站还需要进行 ICP 备案

多人觉得备案很麻烦,其实也不简单🤣

其实还好,是填写一些网站的信息🤔。

备案通过后,所有人都可以在官方备案系统里查到你的备案信息。

比如卡兹克他们的域名查询如下:

那有人会问,是不是有了域名之后,别人就找不到我的 IP 了?服务器是不是比较安全?🤔

不是。

有了域名之后,照样可以解析出对应的 IP,比如 ping命令解析 一下。

这其实是计算机网络的基础知识🤔,这里不再多说。

只要域名直接指向原服务器,别人就能看到这个服务器IP。

HTTPS

没有 HTTPS 的话,浏览器一般会提示网站不安全

用户和服务器之间传输的数据没有被 TLS 加密,账号、Cookie 和提交的内容都可能被窃听或篡改。

所以要给域名配置 TLS 证书,并把所有 HTTP 请求强制跳转到 HTTPS。

证书本身不一定要花钱,Let's Encrypt 等机构可以签发免费证书,但要记得配置自动续期。

3. CDN 和源站保护

域名能访问之后,接下来要解决的是速度和源站暴露的问题。

先说 CDN,什么叫CDN?

假设我们部署的是一个单体项目,也就是前端代码和后端代码都放在同一台服务器里。


用户打开网页的时候,需要下载 CSS、JS、图片、字体或者 HTML 等静态文件。这些文件如果每次都从自己的服务器获取,都会占用你服务器的磁盘 IO出口带宽

比如一台常见的服务器是两核4G-3M的服务器。

换算下来,理论上的最高下载速度大约只有每秒 0.375 MB,还没算网络损耗。如果首页静态资源加起来有 1MB,几个用户同时打开,加载速度就可能明显变慢。

CDN 做的事情,就是把这些静态资源提前缓存到离用户更近的边缘节点。

用户访问网站时,图片、CSS、JS 等文件直接从 CDN 节点返回,不需要每次都从你的服务器获取资源。

CDN有2个明显的好处:

  • 不同地区的用户打开得更快
  • 极大减少源站的带宽压力。

CDN 还有另外一个作用,就是挡在用户和源站之间。

比如 Cloudflare 这类反向代理和 CDN 服务,可以代理你的网站流量,并且隐藏你的源站 IP

开启代理之后,域名解析出来的不是你服务器真正的 IP,而是 Cloudflare 的边缘节点 IP。用户的请求先到 Cloudflare,再由 Cloudflare 转发给你的服务器。

这样可以挡住一部分恶意流量,也能降低源站 IP 直接暴露的风险。

但是卡兹克这个域名似乎没有开启反向代理🤔。

我找codex确认一下,确实是。这是大问题啊!

我看卡兹克的文章,说是有加CDN的,但是这里没有,不知道为什么🤔

4. 接口权限

上面说的都是一些服务器相关的一些网络层安全的设置,下面主要是些应用层的。

如果你的网站不需要注册登录就可以操作,那就要格外小心。

读取公开内容可以不登录,但写数据库、删除数据、修改资料、发送邮件、发送短信,调用付费模型这些操作,一定要做身份认证和权限校验。

因为这些操作,很容易被侵略者拿到,然后把服务搞崩。

密钥、数据库密码和 大模型的API Key 也不能写在前端代码里,更不能直接提交到 Git 仓库。

说个有意思的事,Vibe Coding火了之后,很多人把自己的API密钥push到GitHub上,还是公开仓库,这相当于直接把钱丢路边啊!你看别人捡不捡😅


5. 缓存和限流

高频数据先缓存

我们都知道,一般网站的数据都来自数据库

如果网站的流量大,用户每次访问,都要从数据库里重新查询,那就有问题了。

攻击者可以通过代码一直调用接口,然后把数据库搞宕机。数据库都宕机了,网站基本就挂了。

所以高频数据不要每次都直接从数据库读取,可以先缓存一下。

很多编程语言和框架都有对应的内存缓存机制,从数据库读取之后放到内存里面,没有的话再从数据库读。

从内存里面读取数据,速度是比数据库快得多的多的。

除了服务器内存,也可以放到Redis中。Redis 的读取速度非常快,适合存放访问频率高、允许短时间不完全实时的数据。

最后再由数据库兜底。用户请求的流程就变成了。

用户请求 → 应用内存 → Redis → 数据库

给关键接口加限流

比直接封禁更常用的做法,是限流。

比如同一个 IP,一分钟最多访问某个接口 60 次。超过之后就返回 429 Too Many Requests,让它等一会儿再请求。

比如卡兹克这个网站是有限流的。

可以看到,上面这个限流是Nginx层面的限流。

当然,限流不能只看 IP。

登录、注册、发验证码、搜索、上传文件,不同的业务场景,接口消耗的资源完全不一样,应该分别设置限制。这些就要在项目代码中进行限流了。

6. 注册防刷

如果你的网站需要注册之后才能使用,注册这里还会踩很多坑。


假设注册时什么要求都没有,只需要填个账号密码,问题就非常大了。

攻击者会找到你的注册接口,然后用脚本批量注册。因为这些账号信息都要存到数据库里,写数据库的并发是比较低的,批量写数据可能会把你的数据库搞崩。

你的数据库里会突然多出几倍、十几倍的新用户,而且全是没用的垃圾账号。它们不只占用数据库空间,还可能被用来刷内容领权益消耗模型额度,甚至继续攻击其他用户。

怎么解决呢?下面提供一些常见思路🤔

第一层,图片验证码

最简单的方法是加一个文字图片验证码

但是图片验证码也可以被程序识别,或者被打码平台人工绕过。攻击者非常容易解决。

你改成这种拼图,就比较难识别了。当然,这种AI做起来也稍微比较麻烦。

第二层,邮箱验证

注册时不能只填一个用户名,而是要绑定邮箱。

用户需要填写邮箱验证码,验证这个邮箱确实能收到邮件之后,才允许注册成功。

发验证码这个接口本身也要限流。否则攻击者不一定注册账号,光是反复调用发信接口,就能把你的邮件额度打光。

第三层,临时邮箱

邮箱验证也不是终点,因为现在有很多临时邮箱

我猜很多人估计很多人没听过这个概念。

可以这么理解,有些服务提供了大量可以临时使用的邮箱地址。你在网站上拿到一个地址,就可以用它注册账号、接收验证码,用完就扔。

比如你在浏览器里面输入临时邮箱关键字,可以看到很多这样提供免费邮箱的网站。

刷新,给你一个邮箱。

临时邮箱的原理并不复杂,买一个域名,再配置一个可以接收任意前缀邮件的中转服务,理论上就能生成近乎无限的邮箱地址。

手动操作嫌麻烦,甚至还可以通过 API,用代码批量读取邮箱里的验证码。🤔

那要怎么解决呢🤔

最简单的办法,是限制只允许一些常见邮箱注册。

比如只允许 qq.com163.comgmail.com 这些邮箱域名。

但这个方案也很粗暴。因为它会误伤使用企业邮箱、自建域名邮箱的正常用户,而且攻击者一样可以批量准备常见邮箱。

当然,解决的办法是多种多样的,一般都是多种方式一起加,一起限流。

7. 内容审核

如果你的网站是UGC平台,允许用户自己发内容,那就更要小心了。

敏感内容和违禁词

用户发布的内容,必须先做敏感信息过滤。

政治敏感、色情、暴恐、赌博、诈骗,这些内容如果出现在你的网站上,不只是账号被平台封禁的问题,严重的还可能涉及法律责任。


所以用户提交的任何文本,都要经过违禁词检测。最简单的方式是接入第三方内容安全服务,各大云厂商都有对应的文本、图片、视频审核 API,可以对用户生成内容做自动机审。

但机器审核不能解决所有问题。擦边内容、谐音词、变形词,机器很容易漏掉。如果平台用户量较大,还需要配合人工审核或者先审后发的机制。

提交频率和限流

发布内容是一个高风险操作。如果不加限制,恶意用户可以用脚本短时间内大量发布垃圾内容。

所以除了注册要防刷,发布内容的接口也要加限流——同一个用户一分钟最多发几条,一天最多发几条。超过阈值就拒绝,并把异常行为记到日志里。

一点想说的

上面讲的一些只是做网站的一些基础心得,也是安全方面的冰山一角

实际上要维护运营一个网站项目,达到企业级的标准,是非常复杂繁琐的事情

比如你这个网站如果是需要做营销,那就涉及到SEO。用户根据关键词搜索你的网站才会排在前面,有更大的概率被更多人访问。

那现在有了AI之后。就有了GEO,你网站的内容可以被ChatGPT、豆包、Deepseek这种Agent识别到。

最后,叠个甲。

说这么多,不是降低大家Vibe Coding的欲望,而是提供一种学习的思路给大家🤔。边做边学,边踩坑才会学得更快****🤣

我是卡卡罗特,持续分享对你有用的AI信息~

如果感觉内容不错的话,点个赞在走呗~

posted @ 2026-07-07 07:10  卡卡罗特AI  阅读(14)  评论(0)    收藏  举报