“Vibe Coders” 面临诉讼风险:AI 应用的 30 分钟安全实操指南

@PrajwalTomar_
英语1天前 · 2026年7月25日
561K
181
20
8
806

TL;DR

一份为 AI 辅助开发者准备的全面安全指南,通过 30 分钟的发布前检查清单,防止数据泄露、法律责任以及意外的 API 成本。

大多数通过"氛围编程"(Vibe Coding)方式构建应用的人,在上线时仍然没有考虑任何安全问题。他们专注于功能、设计和快速发布。而像安全这类"无聊"的事情,就像家庭作业一样被他们抛在脑后。

有些人已经为此付出了代价。一夜之间收到 200 美元的 Supabase 账单。上线第一天就被垃圾信息淹没。还有少数人收到了他们始料未及的律师函。

然而,也有一小群人,在每次发布前都会默默运行一个 30 分钟的检查清单。这类事情不会在你的演示中体现,但却决定了你的应用能否在第一批真实用户面前存活下来。

我第一次分享这个清单的简短版本是在一篇帖子里。它获得了超过 90 万次浏览,回复和私信都在问同一件事:完整的深度解析、代理机构的实战背景、以及那些因为字数限制而被我删减的部分。很多人想要,所以它来了,而且已经根据 2026 年的实际情况进行了更新。

在近两年的时间里,我所在的代理机构已经构建了 60 多个 MVP。我们曾在 21 天内发布产品,并直接投入生产环境。我学到的一点是:安全不是事后添加的功能。它是在发布前就必须融入的东西,否则你将为此付出代价,包括紧急救火、退款和声誉受损。

这篇文章是完整版。它从一个有 20 多年经验的开发者分享在 Reddit 上的内容开始,然后叠加了我们代理机构在每一个项目上线前都会执行的所有检查。

以下是完整的解析。

Prajwal Tomar - inline image

Reddit 帖子说对了什么(以及它遗漏了什么)

一位拥有 20 多年经验的开发者最近在 Reddit 上分享了一份发布前检查清单,在氛围编程社区迅速走红。这份清单很精炼。五个类别。包含可以直接复制到 Claude 或 Cursor 中的真实提示词。

他抓住了基础。

→ 在收集第一个电子邮件地址之前,先保护好自己,从法律层面

→ 用 AI 在 2 分钟内审计你自己的安全状况

→ 遵循 OWASP 标准,而不仅仅是安全标头

→ 检查前端和 API 路由中的数据泄露

→ 永远不要将 API 密钥发送到浏览器

但是,在为客户的代码重构项目做评估,审计了数十个通过氛围编程构建的应用之后,我发现几乎所有构建者都忽略了更深层次的问题。

Reddit 的帖子覆盖了表面。这篇文章覆盖了底层的根基。两者都很重要。如果你只做其中一项,你仍然暴露在风险之中。

Prajwal Tomar - inline image

大多数氛围编程者处理安全问题的误区

大多数构建者把安全当成一个"版本 2.0 再添加"的功能。

它不是功能。它是地基。

AI 让你能在一个周末内发布产品。同样的速度也能让你在一个周末内发布一个"负债"。代码库看起来很整洁。UI 看起来很精致。演示运行完美。但当有人打开 DevTools 就能读取你整个数据库时,这些都无法保护你。

当创始人找到我们代理机构,要求我们重建一个破败的 MVP 时,几乎每次都会出现同样的五类失败:开放的数据库、泄露信息的认证流程、躺在前端代码包里的 API 密钥、没有对昂贵端点设置速率限制、以及那些能为任何触发它们的攻击者描绘出整个数据库结构的错误信息。

解决方法不是偏执狂。

解决方法是每次发布前运行一个 30 分钟的检查清单。五个类别。和我们代理机构运行的一样。接下来我将带你逐一了解。

第一部分:保护你自己,而不仅仅是你的应用

当你开始收集用户数据的那一刻,你就踏入了法律领域。GDPR、CCPA、平台服务条款。

大多数氛围编程者直到为时已晚才会考虑这些。

三个最低要求。

→ 一份真实的隐私政策,即使是自动生成的。Termly 和 PrivacyPolicies.com 都能在 5 分钟内免费帮你完成。

→ 确切知道你的用户数据存储在哪里:Supabase 区域、Vercel 区域、以及任何接触数据的第三方服务。

→ 不做任何违规操作:不出售用户数据,不将数据导出到你的个人邮箱,不以明文存储密码。

不要求完美,但不要鲁莽。

这是你全年最划算的 10 分钟投入,它决定了你是正常发布,还是在第二周就收到律师函。

2026 年的变化,以及为什么这部分现在更重要。

AI 构建应用所面临的法律环境今年发生了转变,大多数构建者还没有跟上。

→ 最高法院维持了"人类作者身份"的裁决。纯粹由 AI 编写的代码在美国不能获得版权。如果竞争对手一字不差地克隆了你用 AI 构建的应用,你可能没有法律依据来阻止他们。

→ 如果你的 AI 悄悄地引入了 GPL 等许可证下的开源代码,你可能被迫开源整个代码库,否则将面临侵权索赔。你承担了所有责任,却没有任何保护。

→ 有史以来最大的 AI 版权案以 15 亿美元的和解告终,并且本周获得了法院的最终批准。律师们不是在赶来的路上,他们已经到了。

这些都不意味着停止构建。而是意味着停止盲目发布。这就是本清单其余部分的作用。

第二部分:锁定你的数据库

这是我们在评估接洽项目时花费时间最多的部分。我们审查过的几乎每一个通过氛围编程构建的应用,至少会在以下三项检查中失败一项。

Supabase 的行级安全。

没有 RLS,任何人都可以打开浏览器的 DevTools,运行一个查询,然后读取你的整个数据库。不是黑客攻击,不是漏洞利用。仅仅是打开控制台并输入一个命令。

进入你的 Supabase 面板。点击 Authentication,然后点击 Policies。如果你看到零条策略,那么你的应用就处于"裸奔"状态。

解决方法很简单。添加策略,限制谁能基于经过身份验证的用户来读取、插入、更新或删除行。如果你使用 Lovable 或 Bolt,只需让 Agent 为你的表启用 RLS 并编写策略。它会自动生成 SQL。

5 分钟。这决定了你的应用是安全的,还是一个等待发生的数据泄露事件。

每个表单上的服务器端验证。

客户端的 Zod 不是安全措施,它只是用户体验。

攻击者禁用 JavaScript,打开 Postman,然后直接向你的 API 发送他们想要的任何内容。如果你的验证只在前端进行,他们可以发送格式错误的数据、SQL 注入尝试或脚本。如果你的表单会写入数据库,那么你必须在服务器上再次验证。检查数据类型,检查长度限制,清理输入内容。

这是基线要求,不是可选项。

不泄露数据的错误信息。

糟糕的错误信息:"SELECT * FROM users WHERE email 失败。"

这告诉攻击者你的表名、列名和查询逻辑。

好的错误信息:"用户未找到。"

在服务器端记录带有上下文的完整错误。向用户显示通用信息。永远不要在生成环境中暴露堆栈跟踪。这是基本的操作安全。大多数应用在第一天就失败了。

Prajwal Tomar - inline image

糟糕的信息会把你的数据库结构交给攻击者。好的信息不会透露任何东西。

Prajwal Tomar - inline image

一个提示词。30 秒内标记出你大部分 OWASP 漏洞。

第三部分:测试认证的失败情况

大多数开发者只测试"快乐路径"。用有效的电子邮件注册,登录,然后就说完成了。

当事情出错时,应用就会崩溃。而这正是攻击者首先探查的地方。

以下是我们签署任何项目前都会运行的精确的 4 点失败情况测试。

→ 连续 5 次用错误密码登录。它会锁定账户吗?它会显示一个通用错误,还是会确认该邮箱存在?

→ 为一个不存在的邮箱重置密码。它会透露该邮箱是否在系统中吗?

→ 点击两次邮箱验证链接。它会破坏流程,还是优雅地处理?

→ 用一个已经注册的邮箱注册。它会泄露该用户已存在的信息吗?

10 分钟的测试。能抓住 80% 的认证漏洞,在它们上线之前。

今年,我们在每次接洽的项目审计中都运行了这个精确的测试。在大约 70% 的代码库中发现了问题。那些拥有漂亮 UI 的氛围编程者,每次都错过了这些问题。

第四部分:每次发布前运行的 4 个 AI 提示词

这是 Reddit 帖子做得很好的部分。这四个提示词覆盖了 80% 的表面安全审计,总共只需大约 8 分钟。

你在 Claude Code、Cursor 或你使用的任何 Agent 中运行它们。保存它们。让它们成为你发布流程的一部分。

提示词 1:基线安全状况。

以安全专家的身份审查我的应用,确保我拥有

强大的安全标头和稳固的基线安全状况。

2 分钟。修复明显的漏洞。仅靠标头是不够的,但它们是基础。

提示词 2:OWASP 标准检查。

对照 OWASP 标准审查我的应用,并突出显示漏洞。

SQL 注入、XSS 和认证问题通常在这里被捕获。

提示词 3:数据泄露审计。

检查我的应用,查找前端或 API 路由中

任何凭证或敏感数据的泄露。

AI 生成的代码几乎总是在三个地方泄露数据:.env 值最终出现在前端代码中;API 响应返回过多数据;秘密出现在日志中。

提示词 4:API 密钥暴露检查。

确保前端代码或网络调用中没有暴露任何 API 密钥。

如果你的密钥在浏览器中,假设它已经被盗。这一个漏洞就足以让整个独立项目在一个周末内"烧光"。

关于 API 密钥的深入探讨。

那个提示词能捕获明显的案例。以下是我们在每个项目中应用的更深层规则。

公钥可以留在前端:Supabase anon 密钥、Stripe 可发布密钥,以及任何明确标记为"public"的密钥。这些就是设计来暴露的。

密钥必须留在服务器端:Service role 密钥、Stripe 密钥、OpenAI 密钥,以及任何没有"publishable"前缀的密钥。将它们存储在 Supabase Edge Function Secrets 或 Vercel 环境变量中。永远不要提交到版本控制中。永远不要粘贴到你的前端代码中。

如果你认为某个密钥可能已经暴露,请立即重新生成它。不要等待。不要指望没有人发现它。公共的 GitHub 仓库会在几分钟内被爬取密钥的脚本扫遍。

Prajwal Tomar - inline image

两分钟就能知道你的安全标头是否有效。

第五部分:保护你的基础设施

这部分保护的是你的钱包,而不仅仅是数据。

每个端点都设置速率限制。

这是氛围编程应用清空你钱包的最快方式。没有速率限制,有人可以在 1 分钟内向你的 API 发送 10,000 次请求。可能是在暴力破解登录,可能是在爬取你的数据库,也可能仅仅是为了恶意破坏。

我曾亲眼目睹一个副项目的 Supabase 账单在一天内从 20 美元飙升至 200 美元,仅仅因为一个端点没有设置速率限制。事情发生得很快。

三个最低要求。

→ 对每个调用付费 API(OpenAI、Anthropic、Stripe、Resend)的端点设置速率限制

→ 在 OpenAI 和 Anthropic 面板中设置硬性每日上限

→ 在达到每日上限的 50% 时设置警报,这样你就能在尖峰影响你之前,在早上就发现它

对于 Supabase Edge Functions,Upstash 是最简单的速率限制解决方案。公共端点每 IP 每分钟 100 次请求,经过身份验证的用户每分钟 1000 次,这是一个合理的基线。

每个公共表单都使用 CAPTCHA。

联系表单、注册页面、候补名单。没有 CAPTCHA,机器人在第一天就会淹没你。我们见过没有保护的应用,联系表单在 1 小时内收集了 500 条垃圾邮件提交。

Cloudflare Turnstile 是免费的,并且注重隐私。集成只需 10 分钟。

在你的 API 上设置 CORS 限制。

默认情况下,许多框架允许来自任何地方的 API 请求。本地开发没问题,但投入生产就是灾难。

指定哪些域名可以访问你的 API。允许你的生产域名。允许 localhost 用于测试。阻止所有其他域名。2 分钟。防止跨站请求伪造和未经授权的 API 访问。

Prajwal Tomar - inline image

硬性上限和警报。这个 3 分钟的设置能挽救你每月的账单。

最后,运行内置的安全扫描

第四部分的 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 或更新版本),扫描会消耗你计划中的 token。

Cursor 和像 Lovable 这样的可视化构建器也内置了它们自己的扫描器,可以标记 RLS 配置错误、暴露的秘密、易受攻击的依赖项和不安全的模式。运行你技术栈中可用的任何一个。

修复它们标记的所有内容。不要带着警告发布。不要告诉自己以后会修复。安全债的累积速度比功能债快得多。

把这个扫描当作部署前的最后一道关卡。手动提示词捕获扫描器遗漏的。扫描器捕获你忘记提示的。既然 Anthropic 已经在 Claude Code 中构建了一个真正的扫描器,就没有理由跳过它了。

Prajwal Tomar - inline image

何时使用这份清单

这份清单是为 80% 的构建者准备的,他们正在发布 MVP、SaaS、AI 工具,或任何涉及用户数据的项目。

在以下情况使用它。

→ 你正在发布任何收集用户数据的应用,哪怕只是一个邮箱地址

→ 你正在使用 Supabase、Firebase 或任何带有数据库访问的后端

→ 你正在代码库中调用付费 API(OpenAI、Anthropic、Stripe)

→ 你即将首次公开分享你的应用

在以下情况可以逐步实施。

→ 你正在发布仅供自己团队在认证后使用的内部工具

→ 你正在与一个已经运行更全面审计的安全团队合作

→ 你处于预 MVP 探索阶段,并且尚未收集任何用户数据

对于大多数发布任何真实产品的氛围编程者来说,清单上的每一项都适用。跳过任何一项,你都在承担不必要的风险。

Prajwal Tomar - inline image

需要注意什么

在你把这当作最终结论之前,有几点需要坦诚说明。

这份清单能让你达到一个有信心的基线,而不是企业级的合规。如果你存储健康数据、金融数据或任何受监管的数据,你需要在此之上进行真正的安全审计。

AI 提示词和扫描器能捕获表面问题。它们无法捕获业务逻辑漏洞、复杂的认证状态错误或复杂的注入攻击。把它们当作地板,而不是天花板。

安全债会累积。你等得越久,清理就越痛苦。在每次发布前运行它,而不是只在一开始运行一次。

RLS 策略很容易写错。通过尝试以不同用户身份访问数据来测试它们。只是启用 RLS 而不进行测试,比没有更糟糕,因为它会制造虚假的安全感。

这实际上意味着什么

这是我诚实的看法。

氛围编程经济正在快速成熟。一年前,你可以发布任何东西,没人会关心。现在,平台正在强制执行安全策略。用户对此有期望。投资者正在检查这一点。法院今年划定了真正的界限,律师们已经开始行动。

你在发布前跳过的 30 分钟,将会在出现问题后,花费你 30 天的时间来紧急救火。我们今年在多次接洽的审计中目睹了这种情况,创始人在第一版开始泄露数据或烧钱后,来找我们要求重建。

在我们代理机构,我们对待这份清单就像对待部署一样。它不是可选项。它是发布过程的一部分。随着 Anthropic 现在将安全扫描器直接集成到 Claude Code 中,执行此清单的构建者和跳过它的氛围编程者之间的差距将会更快地扩大。

你不需要偏执。你不需要第一天就拥有企业级安全。你只需要这份清单。

在每次发布前运行它。让它成为你工作流程的一部分。像对待测试或部署一样对待它。

因为在 2026 年能够生存下来的应用,不仅是最快发布的那些。它们是那些发布快,并且在真实用户涌入时不会崩溃的应用。

2026 年对于那些将安全视为工作流程而非事后诸葛亮的构建者来说,将是"不公平"的优势所在。

太长不看版(TLDR)

→ 氛围编程者正在被起诉、罚款和"掏空"。大多数人还没有意识到这一点。

→ 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/

Prajwal Tomar - inline image

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

开干。

一键保存

使用 YouMind AI 深度阅读爆款文章

保存原文、追问细节、总结观点,并在一个 AI 工作空间里把爆款文章沉淀成可复用笔记。

了解 YouMind
写给创作者

把你的 Markdown 变成干净的 𝕏 文章

图片上传、表格、代码块,往 𝕏 上手动重排太痛苦。YouMind 把整篇 Markdown 一键转成干净、可直接发布的 𝕏 文章草稿。

试试 Markdown 转 𝕏

更多可拆解样本

近期爆款文章

探索更多爆款文章