Supabase 是 Vibe Coding 的陷阱 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 需要同时拆除四件事:

  1. Auth — 绑定在 Supabase Auth 上的 JWT 结构、OAuth 回调、会话管理
  2. Storage — 存储桶结构、访问策略、URL 签名
  3. Realtime — WebSocket 订阅、Presence 频道
  4. 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 不是问题所在。把决策藏在看不见的地方才是问题。


相关文章


参考来源

  • 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