Image: AI generated
30 秒的魔法
“帮我搭个后端。” AI 推荐了 Supabase。一个 URL,PostgreSQL、认证、存储、实时订阅全部就绪。30 秒内登录跑通,2 分钟完成 CRUD。
三个月后,没有人知道这些 RLS(Row Level Security)策略是谁写的。
AI 为什么推荐它
Supabase 成为 vibe coding 的默认选择,原因不是技术优越性。是因为训练数据中教程数量最多。
Cursor、Bolt、v0、Lovable——无论用哪款 AI 编程工具输入"帮我搭个后端",Supabase 都会出现。AI 推荐的是它见过最多次的模式,而不是最好的模式。
Zhang 等人(ACL 2025)实证表明,7 个 LLM 在没有明确指令的情况下系统性地偏好特定服务商,并自主修改输入代码以插入偏好的服务商。用户相信 AI 推荐的就是最优选择,AI 推荐的却是训练数据中出现频率最高的东西。这就是谄媚偏差的基础设施版本。
把逻辑藏入黑盒之后
Supabase 真正的问题不是 Supabase 本身。问题是业务逻辑被移入了黑盒。
1. RLS 策略 = 隐藏的业务逻辑
Row Level Security 是一项强大的功能。问题在于:AI 生成 RLS 策略后,它住在哪里?
- 不在代码里。在 Supabase 控制台里。
- 不在 git 里。没有版本管理。
- 不在测试里。CI 无法验证。
“谁能访问这张表?“这个问题的答案不存在于代码库中。必须登录 Supabase 控制台才能确认。智能体无法读取这些信息。
如果 AI 为了"整理"而修改了 RLS 策略?认证就会被攻破。没有测试,没有人知道。直到生产环境中客户数据泄露后才会被发现。
这不是假设。CVE-2025-48757 中,Lovable 生成的 170 多个应用因缺少 RLS 导致整个 Supabase 数据库暴露,303 个漏洞端点泄露了邮箱、API 密钥和支付信息。2026 年 1 月,AI 社交网络 Moltbook 在 RLS 禁用状态下上线,导致 150 万 API token 和 35,000 个邮箱地址泄露。
2. Edge Functions = 第二个黑盒
业务逻辑分散在两处:前端代码和 Supabase Edge Functions。AI 必须判断哪段逻辑在哪里。AI 会判断错误。
支付折扣计算逻辑在 Edge Function 里。AI 重构前端时,在前端重新实现了同样的计算。现在折扣被应用了两次。三周后在营收报告中才被发现。
3. 迁移 = 退出成本
离开 Supabase 需要同时拆除四件事:
- Auth — 绑定在 Supabase Auth 上的 JWT 结构、OAuth 回调、会话管理
- Storage — 存储桶结构、访问策略、URL 签名
- Realtime — WebSocket 订阅、Presence 频道
- RLS 策略 — 所有未文档化的业务规则
每一项单独看似乎一天就能搞定,但四者相互缠绕。改了 Auth,RLS 就会崩溃;RLS 崩溃,Storage 访问就会失控;Storage URL 变了,前端就会崩溃。
这就是 vendor lock-in。进去只需 30 秒,出来却要 3 个月。
端口地狱的云端版本
Vibe coder 在本地遭遇的端口地狱——AI 启动服务器、不关闭、端口混乱、不知道什么在运行——在 Supabase 中这一切上升到了基础设施层面。
本地端口地狱:进程不可见。 Supabase 地狱:业务逻辑不可见。
两者结构相同。智能体创造的东西,智能体无法追踪。
替代方案是什么
这不是要你停止使用 Supabase。而是不要把业务逻辑放进黑盒。
原则:所有决策都必须存在于代码库中。
- 认证规则 → 在代码中声明,用测试验证
- 访问策略 → 用 DDL + Rego 声明,在 CI 中验证
- 业务逻辑 → 只存在于一处,不重复
- 基础设施配置 → 用 Terraform/IaC 声明,在 git 中进行版本管理
用 Supabase 做原型是合理的。但当你把原型带入生产的那一刻,就必须把黑盒里的逻辑取出来,迁移到声明式层。
这样才能不让 30 秒的魔法变成 3 个月的痛苦。
你的 RLS 策略在 git 里吗?
你的 Edge Function 有测试吗?
你能确信 AI 的"整理"不会搞崩认证吗?
Supabase 不是问题所在。把决策藏在看不见的地方才是问题。
相关文章
- Reins Engineering — 套上缰绳的 AI — 黑盒的对立面。用确定性契约驾驭智能体。
- Hurl 阻止 Vibe Coding 漂移 — 用纯文本声明 API 行为,用棘轮锁住。如果 RLS 在代码库外部,Hurl 也无法捕捉。
- 可被智能体操作的代码库 — 控制台 UI 对智能体而言不可读、不可验证、无法持久化。代码库必须是工厂。
- AI 谄媚偏差是一项商业功能 — AI 推荐 Supabase 的机制。给它意见,它就奉承;给它事实,它才纠正。
- yongol — AI 编程 SaaS 的龙骨 — 黑盒的替代方案。将决策声明式地存入 10 个 SSOT 并交叉验证。
参考来源
- Zhang, Y. et al. (2025). “The Invisible Hand: Unveiling Provider Bias in Large Language Models for Code Generation.” ACL 2025. arxiv.org/abs/2501.07849
- CVE-2025-48757 (2025). Lovable-generated 170+ apps exposed entire Supabase DBs due to missing RLS. ameeba.com
- OG William (2026). “Moltbook Hack: Supabase Vibe Coding.” 1.5M API tokens + 35K emails exposed. blog.ogwilliam.com
- Willison, S. (2025). “Supabase MCP can leak your entire SQL database.” simonwillison.net
- Cursino, D. et al. (2026). “Speed at the Cost of Quality? The Impact of AI Coding on Software.” MSR 2026. arxiv.org/abs/2511.04427
- Storey, M.-A. (2026). “From Technical Debt to Cognitive and Intent Debt.” arxiv.org/abs/2603.22106
- Encore (2026). “Backend as a Service (BaaS) in 2026: Providers, Tradeoffs, and Migration Paths.” encore.dev