大多数 vibe coder 在发布应用时,仍然毫无安全措施。他们专注于功能、设计和快速发布。那些枯燥的东西感觉就像家庭作业。
有些人已经为此付出了代价。一夜之间出现 200 美元的 Supabase 账单。上线第一天就被垃圾信息淹没。还有一些人收到了他们始料未及的停止侵权函。
然而,有一小群人,在每次发布前都会默默执行一个 30 分钟的检查清单。这类事情不会在你的演示中体现,但却决定了你的应用能否承受住第一批真实用户的考验。
我最初在一个帖子中分享了这个清单的快速版本。浏览量超过了 90 万,回复和私信都在问同一个问题:完整的深度解析、代理机构视角、以及那些为了凑字数而不得不删掉的部分。所以,很多人要求我写出来,现在它就在这里,并且根据 2026 年的实际情况进行了更新。
在近两年的时间里,我的代理机构已经构建了 60 多个 MVP。我们曾在 21 天内发布产品,并直接投入生产环境。我学到的是,安全不是事后添加的东西。它是在发布前就融入其中的,否则你就要用紧急救火、退款和声誉损失来买单。
这篇文章是完整版。它从一个拥有 20 多年经验的开发者在 Reddit 上分享的内容开始,然后叠加了我们在代理机构中每个项目上线前都会执行的所有流程。
以下是完整的解析。

Reddit 帖子说对了什么(以及它遗漏了什么)
一位拥有 20 多年经验的开发者最近在 Reddit 上分享了一份发布前检查清单,在 vibe coding 社区中迅速走红。它很精炼。五个类别。你可以直接复制到 Claude 或 Cursor 中的真实提示词。
他奠定了坚实的基础。
→ 在收集第一个电子邮件地址之前,先保护好自己的法律权益
→ 在 2 分钟内用 AI 审核自己的安全态势
→ 遵循 OWASP 标准,而不仅仅是安全标头
→ 检查前端和 API 路由中的数据泄露
→ 永远不要将 API 密钥部署到浏览器
但是,在为客户做重建报价前,对几十个 vibe coded 应用进行审核后,我发现几乎所有构建者都忽略了一个更底层的层面。
Reddit 的帖子覆盖了表面。这篇文章覆盖了底层的根基。两者都很重要。如果你只做其中一个,你仍然暴露在风险中。

大多数 Vibe Coder 处理安全问题的方式存在的问题
大多数构建者把安全当作一个在第二版才会添加的功能。
它不是功能。它是底线。
AI 让你可以在一个周末内发布一个产品。同样的速度也让你可以在一个周末内发布一个负担。代码库看起来很整洁。UI 看起来很精致。演示运行得很完美。但这些都无法保护你,当有人打开 DevTools 就能读取你的整个数据库时。
当创始人们找到我们代理机构,要求我们重建一个损坏的 MVP 时,几乎每次都会出现同样五类失败问题。开放的数据库。泄露信息的认证流程。留在前端代码包中的 API 密钥。昂贵端点上的无限速率限制。向任何触发它们的攻击者泄露整个数据库 schema 的错误信息。
解决方法不是偏执。
解决方法是一个你在每次发布前都要执行的 30 分钟检查清单。五个类别。和我们代理机构运行的一样。也是我即将带你了解的。
第 1 部分:保护你自己,而不仅仅是你的应用
从你收集用户数据的那一刻起,你就踏入了法律领域。GDPR。CCPA。平台服务条款。
大多数 vibe coder 直到为时已晚才想到这一点。
三个最低要求。
→ 一个真实的隐私政策,即使是生成的也可以。Termly 和 PrivacyPolicies.com 都可以在 5 分钟内免费完成。
→ 确切知道你的用户数据存放在哪里。Supabase 区域、Vercel 区域、以及任何接触数据的第三方服务。
→ 不做任何可疑的事情。不出售用户数据。不将其导出到你的个人邮箱。不以明文形式保存密码。
不必完美。只要不鲁莽。
这将是你今年做的最便宜的 10 分钟工作,也是正常发布和在第二周收到停止侵权函之间的区别。
2026 年发生了什么变化,为什么这部分现在更重要了。
AI 构建应用的法律环境今年发生了变化,大多数构建者还没有跟上。
→ 最高法院维持了人类作者身份的裁决。纯粹由 AI 编写的代码在美国不能获得版权。如果竞争对手逐行克隆你的 AI 构建的应用,你可能没有法律依据来阻止他们。
→ 如果你的 AI 悄悄引入了 GPL 等许可证下的开源代码,你可能会被迫开源整个代码库,或面临侵权索赔。你承担了所有责任,却没有得到任何保护。
→ 迄今为止最大的 AI 版权案件以 15 亿美元的和解告终,本周获得了最终法院批准。律师们不是将要到来,他们已经到了。
这并不意味着停止构建。这意味着停止盲目发布。本清单的其余部分就是教你如何做到这一点。
第 2 部分:锁定你的数据库
这是我们在审核接入项目时花费最多时间的部分。几乎我们打开过的每个 vibe coded 应用,在下面三项检查中至少有一项不合格。
Supabase 的行级安全。
没有 RLS,任何人都可以打开浏览器 DevTools,运行一个查询,然后读取你的整个数据库。不是黑客攻击。不是利用漏洞。只是打开控制台,输入一条命令。
进入你的 Supabase 仪表板。点击认证,然后点击策略。如果你看到零个策略,你的应用就是裸奔的。
修复方法很简单。添加策略,根据认证用户限制谁可以读取、插入、更新或删除行。如果你使用 Lovable 或 Bolt,只需让 Agent 为你的表启用 RLS 并编写策略。它会自动生成 SQL。
5 分钟。这是安全应用和等待发生的数据泄露之间的区别。
每个表单的服务器端验证。
客户端的 Zod 不是安全措施,而是用户体验。
攻击者会禁用 JavaScript,打开 Postman,然后直接向你的 API 发送任何他们想要的内容。如果你只在客户端进行验证,他们可以发送格式错误的数据、SQL 注入尝试或脚本。如果你的表单会写入数据库,必须在服务器上再次验证。检查数据类型。检查长度限制。清理输入。
这是基准。不是可选项。
不泄露数据的错误信息。
糟糕的错误信息:"SELECT * FROM users WHERE email 失败。"
这告诉攻击者你的表名、列名和查询逻辑。
好的错误信息:"用户未找到。"
在服务器端记录完整的错误信息及其上下文。向用户显示通用信息。永远不要在生产环境中暴露堆栈跟踪。基本的安全操作纪律。大多数应用在第一天就失败了。

糟糕的信息会把你的 schema 交给攻击者。好的信息则不会透露任何东西。

一个提示词。30 秒内标记出你大部分的 OWASP 漏洞。
第 3 部分:测试认证的失败情况
大多数开发者只测试正常路径。用有效的邮箱注册。登录。然后就算完成了。
应用程序在出错时才会崩溃。这正是攻击者首先探测的地方。
以下是我们在批准任何项目之前,精确执行的 4 点失败情况测试。
→ 连续 5 次用错误密码登录。账户会被锁定吗?是显示通用错误还是会确认邮箱存在?
→ 用一个不存在的邮箱重置密码。它会透露该邮箱是否在系统中吗?
→ 点击邮箱验证链接两次。它会破坏流程还是优雅地处理?
→ 用一个已经注册的邮箱注册。它会泄露该用户已存在吗?
10 分钟测试。可以捕获 80% 的认证漏洞,在它们上线之前。
今年我们对每个接入审核项目都执行了这套精确的测试。它在大约 10 个代码库中发现了 7 个问题。拥有漂亮 UI 的 Vibe Coder 每次都漏掉了这些。
第 4 部分:每次发布前运行的 4 个 AI 提示词
这是 Reddit 帖子做得很好的部分。这四个提示词覆盖了 80% 的表面安全审核,总共大约需要 8 分钟。
你可以在 Claude Code、Cursor 或你使用的任何 Agent 中运行它们。保存它们。让它们成为你发布仪式的一部分。
提示词 1. 基准安全态势。
以安全专家的身份审核我的应用,确保我拥有
强大的安全标头和稳固的基准安全态势。
2 分钟。修复明显的漏洞。仅靠标头是不够的,但它们是底线。
提示词 2. OWASP 标准检查。
对照 OWASP 标准审核我的应用,并突出显示漏洞。
这能真正捕获 SQL 注入、XSS 和认证问题。
提示词 3. 数据泄露审核。
检查我的应用,查找前端或
API 路由中任何凭据或敏感数据的泄露。
AI 生成的代码几乎总是在 3 个地方泄露数据。.env 值出现在前端代码中。API 响应返回过多数据。秘密出现在日志中。
提示词 4. API 密钥暴露检查。
确保前端代码或网络调用中没有暴露任何 API 密钥。
如果你的密钥在浏览器中,请假设它已经被盗。这个单一的错误曾在一个周末内耗尽整个独立项目。
关于 API 密钥的深入探讨。
那个提示词能捕获明显的案例。以下是我们每个项目都会执行的规则。
公钥可以留在前端。Supabase anon 密钥、Stripe 可发布密钥,以及任何明确标记为公开的密钥。这些设计就是用来暴露的。
密钥必须留在服务器端。服务角色密钥、Stripe 秘密密钥、OpenAI 密钥,以及任何没有 "publishable" 前缀的密钥。将它们存储在 Supabase Edge Function Secrets 或 Vercel 环境变量中。永远不要将它们提交到版本控制中。永远不要将它们粘贴到你的前端代码中。
如果你认为某个密钥可能已被暴露,请立即重新生成它。不要等待。不要希望没人发现它。公共 GitHub 仓库会在几分钟内被爬取密钥。

两分钟就能知道你的安全标头是否有效。
第 5 部分:保护你的基础设施
这部分保护的是你的钱包,而不仅仅是数据。
每个端点上的速率限制。
这是 vibe coded 应用掏空你钱包最快的方式。没有速率限制,有人可以在一分钟内对你的 API 发起 10,000 次请求。可能是暴力破解登录。可能是爬取你的数据库。也可能只是恶意行为。
我曾亲眼目睹一个 Supabase 账单在一天内从一个副项目从 20 美元跳到 200 美元,因为一个端点没有速率限制。事情发生得很快。
三个最低要求。
→ 对每个调用付费 API(OpenAI、Anthropic、Stripe、Resend)的端点设置速率限制
→ 在 OpenAI 和 Anthropic 仪表板中设置硬性每日上限
→ 在达到每日上限的 50% 时设置警报,这样你就能在问题第二天早上冲击你之前发现峰值
对于 Supabase Edge Functions,Upstash 是最简单的速率限制解决方案。对于公共端点,每个 IP 每分钟 100 次请求,对于认证用户,每分钟 1000 次请求是一个合理的基准。
每个公共表单上的 CAPTCHA。
联系表单、注册页面、候补名单。没有 CAPTCHA,机器人在第一天就会淹没你。我们曾看到,在没有保护的应用上,联系表单在一小时内收集了 500 条垃圾邮件提交。
Cloudflare Turnstile 是免费的,且注重隐私。集成只需 10 分钟。
你 API 上的 CORS 限制。
默认情况下,许多框架允许来自任何地方的 API 请求。本地开发没问题。但在生产环境中就是灾难。
指定哪些域名可以访问你的 API。允许你的生产域名。允许 localhost 用于测试。阻止其他所有内容。2 分钟。防止跨站请求伪造和未经授权的 API 访问。

硬性上限和警报。这个 3 分钟的设置能拯救你的月度账单。
最后运行内置的安全扫描
第 4 节中的 4 个提示词是手动的。你粘贴它们,然后阅读返回的内容。截至 3 天前,你有了一个更好的最终关卡工具。
Anthropic 刚刚为 Claude Code 发布了一个 Claude Security 插件。
它处于测试阶段,于 7 月 22 日发布,它不是一个单一的提示词。它是一个多 Agent 漏洞扫描器,直接在终端中运行。在 Claude Code 会话中安装:
/plugin install claude-security@claude-plugins-official 然后 /reload-plugins。这会给你一个命令:/claude-security。
它和粘贴提示词有什么不同。
→ 一个 Agent 团队会映射你的架构,构建一个威胁模型,然后在 4 个类别中搜索:注入、认证和访问、内存、以及加密和秘密
→ 每个发现都必须经过一个 3 Agent 对抗式小组的审查,才能进入你的报告,这样你就不会浪费时间处理误报
→ 报告会提供严重性、CWE ID 以及确切的文件和行号,并且可以将发现转化为你可以审查和自行应用的补丁文件
→ 它背后的模型已经在开源代码库中发现了 500 多个以前未知的高严重性漏洞
你需要一个付费的 Claude Code 计划(v2.1.154 或更新版本),扫描会消耗你计划中的令牌。
Cursor 和 Lovable 等可视化构建工具也发布了它们自己的扫描器,可以标记 RLS 配置错误、暴露的秘密、有依赖漏洞的组件和不安全的模式。运行你所用工具栈提供的任何扫描器。
修复它们标记的所有问题。不要带着警告发布。不要告诉自己以后会修复。安全债务的累积速度比功能债务快。
把这个扫描当作部署前的最后一道关卡。手动提示词捕获扫描器遗漏的内容。扫描器捕获你忘记提示的内容。既然 Anthropic 已经在 Claude Code 中构建了一个真正的扫描器,就没有理由跳过它。

何时使用此检查清单
此检查清单是为 80% 发布 MVP、SaaS、AI 工具或任何涉及用户数据的构建者设计的。
在以下情况下使用它。
→ 你正在发布任何收集用户数据的应用,哪怕只是一个邮箱
→ 你正在使用 Supabase、Firebase 或任何具有数据库访问权限的后端
→ 你正在从代码库中调用付费 API(OpenAI、Anthropic、Stripe)
→ 你即将首次公开分享你的应用
在以下情况下可以逐步引入。
→ 你正在发布仅由你自己团队需要认证才能使用的内部工具
→ 你正在与已经运行更全面审核的安全团队合作
→ 你处于 MVP 前的探索模式,并且尚未收集任何用户数据
对于大多数发布真实产品的 vibe coder 来说,此列表中的每一项都适用。跳过任何一项都是在承担你不需要承担的责任。

需要注意什么
在你将此清单视为最终结论之前,有几个诚实的提醒。
此清单能让你达到一个可靠的基准,而不是企业级合规标准。如果你正在存储健康数据、金融数据或任何受监管的数据,你需要在此之上进行真正的安全审核。
AI 提示词和扫描器能捕获表面问题。它们无法捕获业务逻辑漏洞、复杂的认证状态错误或复杂的注入攻击。将它们视为底线,而不是上限。
安全债务会累积。你等待的时间越长,清理工作就越痛苦。在每次发布前运行它,而不是只在开始时运行一次。
RLS 策略很容易编写错误。通过尝试以不同用户身份访问数据来测试它们。仅仅启用 RLS 而不测试,比没有 RLS 更糟糕,因为它会制造虚假的信心。
这实际上意味着什么
这是我诚实的看法。
Vibe coding 经济正在快速成熟。一年前,你可以发布任何东西而没人关心。现在,平台正在强制执行安全策略。用户对此有期望。投资者正在检查它。法院今年已经划定了实线,律师们已经开始出现。
你在发布前跳过的 30 分钟,将在出问题时花费你 30 天的紧急救火时间。我们今年在多次接入审核中都看到了这种情况,创始人在他们的第一个版本开始泄露数据或烧钱之后,来找我们要求重建。
在我们的代理机构,我们将此清单视为部署的一部分。它不是可选的。它是发布的一部分。随着 Anthropic 现在将安全扫描器直接集成到 Claude Code 中,运行此清单的构建者和跳过它的 vibe coder 之间的差距将更快地扩大。
你不需要偏执。你不需要在第一天就达到企业级安全标准。你只需要这个检查清单。
在每次发布前运行它。让它成为你工作流程的一部分。像对待测试或部署一样对待它。
因为在 2026 年生存下来的应用,不仅仅是那些发布快的应用。它们是那些发布快,并且在真实用户出现时不会崩溃的应用。
对于将安全视为工作流程而非事后想法的构建者来说,2026 年将是不公平的优势。
TLDR
→ Vibe coder 正在被起诉、罚款和榨干。大多数人还没有意识到这一点。
→ 2026 年新变化:仅 AI 代码在美国不能获得版权,GPL 污染可能迫使你开源整个应用,历史上最大的 AI 版权和解案(15 亿美元)刚刚获得最终法院批准。首先保护你自己。
→ 第 1 步。保护自己合法。隐私政策、数据位置、没有可疑的处理方式。
→ 第 2 步。锁定你的数据库。Supabase 的 RLS,每个表单的服务器端验证,不泄露数据的错误信息。
→ 第 3 步。测试认证的失败情况。错误密码 5 次。为虚假邮箱重置密码。点击验证链接两次。用已存在的邮箱注册。
→ 第 4 步。运行 4 个 AI 安全提示词。安全态势。OWASP。数据泄露。API 密钥暴露。
→ 锁定环境变量。公钥可以留在前端。密钥放在 Supabase Edge Function Secrets 或 Vercel 环境变量中。如果暴露,立即重新生成。
→ 第 5 步。保护你的基础设施。对每个端点设置速率限制。在付费 API 上设置硬性上限。在公共表单上使用 CAPTCHA。在你的 API 上设置 CORS 限制。
→ 运行一个真正的扫描器作为你的最后一道关卡。Anthropic 的新 Claude Security 插件在你的终端中运行一个多 Agent 扫描。测试版,需要付费 Claude Code 计划。
→ 这需要 30 分钟。在每次发布前运行它。
→ 运行此清单的构建者和跳过它的构建者之间的差距将在 2026 年迅速扩大。
触发此事的完整 Reddit 帖子。https://www.reddit.com/r/vibecoding/comments/1sthzcj/if_youre_about_to_launch_a_vibe_coded_app_read/

截图保存。每次发布前运行它。
开干。





