最近圈子里最大的一个瓜,不是某个大模型又放了新版本,而是一个叫 Moltbook 的 AI 项目被扒了底裤。Moltbook 主打“用 Agent 自动运营一个内容社区”,让 AI 生成图文、抓热点、发帖互动,平台自己则把这些内容包装成普通用户的作品推上热门。结果技术圈顺着几条调用链往下摸,发现热帖是自导自演的,底层数据库处于裸奔状态,所有 Agent API 也几乎没有鉴权保护——换句话说,只要拿到地址,谁都能在里面翻数据、跑任务。
这个瓜对正在做 Agent、API 服务或者内容型产品的人,几乎是现成的反面教材。我做过很长一段时间的内容平台和 Agent 系统运维,Moltbook 踩的坑我一个都不陌生,所以这次把整个事件的技术链路、影响范围和自查方案做了个复盘。不管你是后端开发、独立开发者、运维,还是只想搞懂“Agent 应用上线前该注意什么”,这篇都能当一份避坑清单用。
1. 先搞懂 Moltbook 是什么,以及它为什么会“反转”
1.1 Moltbook 的定位:一个把 Agent 当内容生产力工具的平台
从公开信息看,Moltbook 的产品逻辑并不复杂:用户进入平台后,可以创建一个带有明确人设的 Agent,比如“欧美影视评论员”“极简护肤博主”“加密货币分析师”等等。你只要写好 Agent 的性格提示词、目标读者、发文频率,它就会自动去抓取热点事件,生成带有观点和配图建议的帖子,甚至可以直接帮你发到平台内的 feed 流上。
这个模式本身不是异类。现在很多社区都在做“AI 创作者工具”,希望把内容生产的边际成本打下来。Moltbook 更激进的地方在于,它把选择权和执行权都交给了 Agent:普通用户负责定调子,Agent 负责找选题、写正文、改标题、在合适时间发布。平台靠一套任务调度系统,把 Agent 的生成结果送入内容池,再通过热度算法决定哪些帖子能上首页热门。
这类产品解决了“冷启动没内容”“创作者断更”的问题,天然适合做内容 MCN 的自动化流程。但它有个致命隐患:Agent 一旦具备发布和互动权力,就必须同时具备很强的身份隔离、审计能力和不可抵赖机制。Moltbook 显然没做好。
1.2 事件是怎么被引爆的:从“热帖真实感”到“数据全裸”
反转的起点并不复杂。有人发现 Moltbook 首页某些账号的发帖节奏过于规律,几个账号的创建时间挨在一起,User-Agent 也完全一致,而且帖子发布时间精确到秒级间隔,怎么看都不像真人。进一步检查前端接口后,有人直接调到了后台任务队列,看到每条 Agent 内容任务里都带着“is_ai_generated”、“auto_publish_via_agent”这类内部字段。
真正致命的是后续探测:平台某个数据库端口直接暴露在公网,没有认证,甚至不需要弱口令就能连上。连接上去之后可以读到完整的内容表、用户表、Agent 配置表,连“某个帖子被运营手动提升为热门”这类后台操作记录都留在表里。这个证据链一旦形成,“热帖是生成的、热门是人工推的”就基本锤实了。
比起单纯的“造假”,这套系统更危险的地方在于它毫无纵深防御。我把它拆开讲,主要是三个层面:数据库没有任何网络隔离与认证;Agent API 开放了执行能力却没有权限校验;线上数据把内部运营痕迹原封不动暴露给公网。任何一个问题单独拎出来都够写事故报告了,Moltbook 是一次性集齐。
1.3 影响范围:不只是平台自己翻车,用户和生态都被拖下水
Moltbook 这次翻车的影响面比表面看起来大得多。最直接的是用户数据和 Agent 里沉淀的记忆快照、提示词、创作风格,可能已经被不相关的人看过甚至拷贝了。由于 Agent 的提示词往往包含业务想法、个人偏好、目标受众画像,这些内容一旦流出,对创作者来说几乎是公开处刑。
受影响的不只是 C 端用户。如果一个 Agent 内容平台希望被当作工具接入更多业务,它必须让合作方相信“每次调用都能被记录、能被追溯”。Moltbook 的 Agent API 没有鉴权之后,意味着合作方的调用根本无法区分是谁发的、从哪发的,整个生态审计模型就失去了根基。再加上“热帖自导自演”这个舆论反转,合作的信任感基本清零。
从我的经验看,一个 AI 产品如果同时出现“内容可信度崩塌”和“技术安全裸奔”两个问题,通常不是某个开发者的单独失误,而是整个团队在“快速验证产品需求”的阶段,把安全存量欠太多了。做 Agent 应用尤其容易被这种“功能先行”的心态坑到,因为 Agent 的真实能力边界是模糊的,你很难靠直觉判断哪个接口会被滥用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 复盘 Moltbook 暴露出来的三个致命技术问题
2.1 数据库裸奔:开在公网上的门,没有密码也没有锁
Moltbook 的数据库“裸奔”,在服务器安全里算是最低级但最常犯的错误。具体表现在:第一,监听地址设成了 0.0.0.0,等于所有网络接口都在等待外部连接;第二,数据库用户没有启用强认证,甚至默认管理员权限就能登录;第三,没有在安全组或防火墙层面做来源 IP 白名单。
从事后截图和信息看,出问题的数据库可能是文档型数据库,比如 MongoDB 或类似接口的组件。很多开发者在本地开发时为了省事,启动参数不配置绑定地址,不开启认证,拿着默认账号就直接用。测试完以后没有收拾环境,实例一直在后台跑着,最后被人从公网扫描到。
这类问题在行业里被称为“开在公网上的门”。你可以类比成家里装了一个保险柜,但保险柜放在院子里,门没锁,还贴着使用说明书。数据库裸奔之后,攻击者或普通好奇用户不需要什么高级技巧,直接通过客户端连上去,执行“show databases”就能看到全量数据,更有甚者,还能直接修改表里的内容。
我处理过不止一次类似的生产事故,有些比 Moltbook 更隐蔽:数据库本身只对内网开放,但管理后台因为部署失误暴露到了公网。比如把 Adminer、phpMyAdmin 这类网页端数据库工具放在了公网路径下,又没有做任何登录保护,任何人打开网页都能执行 SQL。对任何一个正在跑 Agent 或业务应用的人来说,这一步必须作为常规检查项。
2.2 Agent API 无鉴权:能调接口,就能驱动 Agent 干活
如果说数据库裸奔是“保险柜没锁”,那 Agent API 无鉴权就相当于“门卫室是空的,谁都能进房间操作机器”。Moltbook 的 Agent 相关接口被指出没有做身份认证和授权控制,这意味着任何拿到接口地址的人,理论上可以提交生成任务、读取执行日志、查看 Agent 配置,甚至操作 Agent 完成发布动作。
Agent API 和普通业务 API 有一个本质差异:普通 API 大多只负责读写数据库,最坏的结果是数据泄露;Agent API 背后往往连着工具调用链,比如查热点、生成文案、调用发布服务、更新页面。一旦有人能向 Agent API 提交非预期任务,它就可能被诱导去执行一些超出设计的操作。哪怕每个单步操作都有权限限制,攻击路径也会被拉长到不可控。
做 Agent 系统的人特别容易犯一个错:只给“人访问的页面”做了登录校验,却默认“Agent 之间调用的内部 API”不需要保护。实际上,Agent 与 Agent、Agent 与工具的通信恰恰是最需要最小权限和双向认证的地方。Moltbook 如果有一套正经的 API 网关,在网关上做统一鉴权,不安全的接口根本不会直接暴露到公网。
无鉴权的 Agent API 对普通用户也是一种风险。假设某个用户的 Agent 配置被人读取到,配置里往往包含“你偏好什么语气、哪些内容不能碰、合作品牌有哪些”,这些信息足以让外部做一套高度仿冒的内容。而如果接口本身还能修改 Agent 的参数,那问题就更严重了——用户的 Agent 可能在毫不知情的情况下,说出和主人想法完全相反的观点。
2.3 热帖自导自演:技术痕迹全留在了后台,锤了自己
数据库裸奔和 Agent API 无鉴权之所以能被迅速拼成完整证据链,是因为 Moltbook 所有后台逻辑都清清楚楚写在了自己的数据表和日志里。我看到的信息里提到,部分热榜帖子背后的记录直接显示 agent_id、任务队列名和“来自运营侧置顶”的操作时间。这种字段本应该在对外输出前被过滤或标记,但它们被原封不动存进业务表,又被裸奔的数据库展示了出来。
“自导自演”的核心争议在于,平台隐瞒了内容出处。AI 生成内容本身不违法,但如果你把 AI 生成的内容标榜成“用户真实投稿”,并以此来吸引广告或提升社区活跃数据,那就属于另一种信任欺诈。更糟的是,Moltbook 里还存在一批疑似由内部 Agent 注册的“马甲账号”,它们相互点赞评论,把帖子捧到热榜。外人看到的数据里,用户行为高度一致,注册时间集中,头像和昵称风格统一,一眼假。
热帖自导自演带来的连锁反应,是平台上所有热度指标都被重新怀疑。无论这个社区里是否真的有一批勤恳的真人创作者,当基础设施暴露出“运营方可以轻易操纵热榜”之后,没人会再相信榜单的公平性。对一个内容型产品来说,这种信任损失远比数据库泄露更持久——数据库可以补,架构可以改,人心一旦散了就很难回来。
3. 从 Moltbook 学到的经验:Agent 系统上线前必须做的事
3.1 数据库的最低限度加固:先做到这四件事
数据库裸奔不是“买个好一点的安全软件”就能解决的,它本质上是配置管理问题。我的固定套路是检查四件事:监听地址是否只绑定了内网地址、是否开启了强认证、应用账号是否有最小权限、安全组和系统防火墙是否做了双重限制。
监听地址是最直观的检查项。MongoDB 下,默认的 mongod.conf 里会有 net.bindIp 配置;MySQL 用 bind-address;PostgreSQL 用 listen_addresses。凡是配置成 0.0.0.0 的,都要逐条问一遍“为什么”。如果没有特殊理由,应当改成 127.0.0.1 加上业务所在服务器的内网 IP,而不是暴露在公网。
认证方面,MongoDB 要开启 authorization: enabled,创建独立账号时不要把 root 角色给应用用;MySQL 和 PostgreSQL 同理,应用账号只给业务库的读写权限,绝不给 DDL 或全局管理权限。很多 Agent 平台为了省事,喜欢用一个拥有全库权限的“超级账号”来连数据库,这正是 Moltbook 这类事故里最致命的联动环节。
安全组与防火墙的双重限制也同样重要,云服务器上没做白名单,只靠本机防火墙很容易漏。我建议至少保留一条规则:数据库端口只允许来自固定办公网 IP 或堡垒机 IP 的入站流量,其他来源一律拒绝。这样即便数据库连接字符串被拿到,外部网络也无法直接建立连接。
3.2 Agent API 必须走统一网关:别让内部接口裸奔
我不能保证 Moltbook 的 Agent API 是因为什么原因失去保护的,但所有 Agent 系统的 API 都有一个通用要求:所有外部请求必须经过统一 API 网关。网关负责 TLS 终止、身份认证、权限校验、限流和审计,业务服务不再直接面对公网。
身份认证方面,我更推荐短期令牌,而不是一个写死的 API Key。短期访问令牌的有效期通常设为 10 到 15 分钟,由认证服务签发,用户或外部系统每次请求先换取新令牌。即便令牌在请求过程中被截获,它也会在很短时间内失效,无法被用来长期访问。长期存在的 API Key 只应该放在后端环境变量或密钥管理器里,不应该出现在前端代码、Agent 提示词或者日志中。
权限维度上,普通用户能调用的 Agent 接口应该天然限定在自己的 Agent 范围内。拿当前登录用户的 user_id 去查询“我创建的 Agent”,而不是把 agent_id 作为唯一筛选条件。很多平台在早期为了省事,直接信任前端传过来的 agent_id,结果别人把 agent_id 从 1 循环到 100,就能看到所有 Agent 的配置和任务。这种 ID 遍历型漏洞在 REST API 里相当常见,必须靠服务端强制绑定资源归属来规避。
Agent 执行类接口还要额外加人工确认或者操作类型限制。比如“生成一篇草稿”可以由 Agent 自动执行;“对外发布内容”则应该进入二次确认队列,由用户手动点击确认后才能发出去。Moltbook 被爆出的自导自演热帖,很大程度上是因为它把“发布动作”完全交给了 Agent 自动完成,又没有任何人审核,所以事件的真实性一被质疑就立刻丧失了解释空间。
3.3 Agent 产生的内容要可追溯、可标记、可撤回
开发 Agent 内容系统时,我的建议是:每一篇由 Agent 生成的内容,从生成到发布的生命周期都要有完整记录。数据库里至少应该包含 agent_id、生成时间、模型版本、提示词模板编号、审核状态、发布账号 ID。至于是否需要把内容打上“AI 生成”的标签公开展示,取决于产品定位,但技术上必须能随时回溯它是怎么来的。
可追溯不只是为了应对用户质疑,它更是一个 Agent 系统自我纠错的基础。当某条内容出现事实错误、版权争议或者传播风险时,你必须通过技术手段快速定位到具体环节,才能处置和优化。没有追溯能力,就只能靠人工肉眼判断,效率极低且不可靠。
可撤回是另一个容易漏掉的动作。Agent 发布的内容如果出现偏差,系统应当提供一键撤回能力。撤回也不只是删帖,还要把对应的推荐记录、评论互动、通知推送一并处理掉。Moltbook 这类事件里,平台最缺的不是道歉声明,而是一套能让用户明显感知到“平台对 Agent 内容有控制力”的产品机制。
3.4 数据库之外的备份与审计,不能拖到最后才做
很多人以为数据库裸奔只是端口问题,把端口一封就结束了。但真正让你睡不着的其实是“入侵已发生但你看不到”。Moltbook 从数据库暴露到证据被扒出来之间,有多少外部连接曾经访问过,没人能通过现有日志完整还原,因为它在数据库层面没有审计日志。
我给所有 Agent 项目的建议是:上线第一天就开启基础审计。数据库层面的 general log、API 网关的访问日志、Agent 任务执行的调用链日志,三者至少要保留 30 天以上。普通用户的 Agent 被调用,也应该记录 task_id、请求来源 IP、目标外部系统、返回状态码。
Agent 的任务日志不是只用来排查 bug 的,更不是线上安全的负担。有一次我的用户反映 Agent 突然连续发布了几条奇怪内容,就是因为某个测试环境的 API Key 泄漏,被外部刷了一轮调用。如果没有调度系统的任务日志,我根本无法定位到“哪个后台任务在什么时间点被什么人触发”。有了完整审计,几分钟就能把异常任务停掉,并顺藤摸瓜找出泄漏的密钥。
4. 常见问题与排查技巧实录
4.1 如何快速排查自己的服务有没有“裸奔”风险
这类问题我不会只靠肉眼判断,直接靠最基础的本机端口检查和安全组检查就能筛掉 90% 的风险。以下是一个可以跑在自己服务器上的 Bash 检查脚本,轻量又直观:
bash复制#!/usr/bin/env bash
check_port() {
if nc -zv 127.0.0.1 "$1" 2>&1 | grep -q succeeded; then
echo "[本地服务] 端口 $1 正在监听"
fi
}
for port in 3306 5432 27017 6379 9200 5672 8080 9090; do
check_port "$port"
done
echo "------------------"
echo "提示:本地监听正常不等于公网安全。"
echo "请将上述端口对应的安全组规则,逐条检查来源是否设置了 IP 白名单。"
如果你发现某个本不该对外开放的数据库端口在公网都能用 Telnet 或 nc 连上,立即关停它。操作顺序上,先改监听地址,再断开所有可疑连接,最后修改数据库账号密码并更新客户端密钥。这里最忌讳上来就重启数据库,因为一旦有合法业务正在访问,重启可能导致服务中断,一定要按“最小影响”的方式逐步操作。
4.2 数据库已经暴露了,怎么止血才不手忙脚乱
真遇到“我的数据库好像裸奔了”的情况,第一步不是删库,也不是满世界甩锅,而是冷静执行三个动作:隔离、备份、换证。隔离是指立刻在安全组或者防火墙上把数据库入站流量限制为自己的办公 IP;备份则是先从本机导出一份最新的数据快照,防一个“处理过程中误操作把数据清掉”的情况;换证是后续所有服务端配置里的数据库账号密码全部重新生成。
处理过程中要注意保护现场。在关闭端口之前,先记录当前的连接列表和最近日志。Linux 上可以用 netstat -tanp 查看正在连接的 IP,数据库日志里也可能记录了远端来源。有人会在这时候慌张地去“加固”,结果把日志文件覆盖了,等于丢掉了最关键的证据。真要判断有没有发生数据窃取,只能靠这些原始日志。
如果确认数据已经被外部完整读取,别把所有责任都揽在自己身上,也不要觉得自己能独自处理完所有善后。该通知用户的通知用户,该评估损失就如实评估。尤其在 Agent 内容平台里,数据泄露可能直接关联到“用户提示词泄漏”和“个性化内容被模仿”,这在后果上比普通网站的用户手机号泄露更复杂。
4.3 我发现 Agent API 没有鉴权了,如何最小成本改造
Agent API 没有鉴权是很容易发现的问题。最简单的验证方法:用浏览器直接访问某个需要身份的 Agent 接口 URL,如果它能正常返回 JSON 数据,或者你用 curl 不带任何 Token 请求后能看到内容,说明这一层没有校验。
一旦确认问题,最小成本的改造方式并不需要重写所有接口。先接一层 API 网关,在网关层面强制要求所有请求带 Authorization Header,网关校验通过后才转发到后端。这样做的好处是业务代码不用大动,只需要把之前“裸请求”的客户端补上 Token。很多开发团队用到了 Nginx 或云网关,我已经验证过这种方法能在半小时内显著收敛风险:
nginx复制server {
listen 443 ssl;
server_name api.example.com;
location /v1/agent/ {
if ($http_authorization = "") {
return 401;
}
proxy_pass http://agent-backend-svc;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Original-URI $request_uri;
}
}
上面的 Nginx 配置只是示意,真正的网关层还要做 Token 签名校验、过期时间判断和限流。这里想表达的是:Agent API 的改造入口最好是统一的,而不是散落在每个 Agent 的代码里。只要统一入口,后期再做权限收敛、审计、流控都会容易很多。
4.4 如何识别内容平台里的“Agent 自导自演”痕迹
作为内容平台的运营方,如果你怀疑系统内出现“用 Agent 批量灌水、互相点赞”的情况,不要靠直觉判断,直接查这些特征:注册账号的 IP 集中度、多个账号首次激活的时间间隔、发布时间的整点分布、点赞动作之间的秒级间隔。真人用户的行为是高度不均匀的,Agent 驱动的行为往往干净得有规律。
有过一次案例,我在排查某平台异常热帖时发现,两个“用户”的注册时间相差不到 10 分钟,密码加密规则的盐值相同,连头像图片的 EXIF 信息都一致。继续查调用链后,发现它们都挂在同一个 Agent 项目 ID 下。这种问题在数据完整的情况下非常容易实锤,关键在于你的系统数据库里能不能把这些“Agent 标识”保存下来。
给想要做合规 Agent 内容平台的建议是:在用户协议和 UI 上,把 AI 生成内容的标记做成明确、可感知的。平台可以允许 Agent 发帖,但必须区分哪些是“人写的”、哪些是“AI 生成后人工审核的”,更不要把内部自动发布流程伪装成真人用户创作。Moltbook 被反转的核心,不在于“用了 AI”,而在于“偷偷用还不认账”。
5. 这个瓜真正让我警醒的地方
把 Moltbook 的技术问题完整梳理完,我心里最大的感受不是“这些漏洞好低级”,而是“它们离普通项目实在太近了”。我们做 AI Agent 应用的时候,最容易被新功能冲昏头脑,觉得“先跑起来再说”“这个模块以后再加安全”,结果就是数据库裸奔和 API 无鉴权成为默认状态。
如果你正在做 Agent 平台或者任何 AI 内容产品,我建议你把今天聊的问题整理成一页部署检查单:端口是否公网可达、数据库是否开启强认证、每个 Agent API 是否都有统一鉴权、Agent 生成内容是否能追溯到具体调用链。不要等热度榜单或者内容出了事再回头排查,到那个阶段的代价一定比现在高得多。
Moltbook 的反转也给想靠 AI Agent 做内容的人提了个醒:Agent 发的内容如果和水军行为、虚假流量挂在一起,被技术圈盯上只是时间问题。做产品,还是得让透明边界和真实体验同时在线。
