VibeShields 上线:检测应用开放数据库与泄露密钥并给出修复提示词
来源标题:Vibe Shields
VibeShields 可对线上应用做只读安全检查,发现开放数据库和暴露密钥等问题,并用通俗语言说明,同时给出可直接粘贴回构建工具的修复提示词。该工具要求先验证应用归属,无需访问代码,且证据会被遮蔽,不存储密钥或用户数据。其指出的常见泄露原因是 Supabase 未启用行级安全或 Firebase 规则设为公开读取,以及密钥被打包进网站。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
VibeShields 会检查你的线上应用是否存在开放数据库和泄露的密钥,用通俗易懂的语言告诉你问题出在哪里,并直接给你一段可以粘贴回构建工具的提示词。 只读检查 先验证应用归你所有 无需访问代码 app.vibeshields.com/apps/glowup 2 待修复的问题 互联网上任何人都可以在不登录的情况下,使用每个 Supabase 网站上都有的公开密钥,读取你 profiles 表中的数据行。 请为 public schema 中的每一张表启用 Row Level Security,然后添加策略,使已登录用户只能读取和修改自己的数据行…… 示例报告。证据始终经过掩码处理:我们从不存储你的密钥或用户数据。 AI 构建工具非常擅长让功能跑起来,却不太在意还有谁能够进来。大多数泄露背后是两个简单的错误:数据库对整个互联网敞开,以及密钥被打包进网站里,任何人都能复制。这两个问题在你点击浏览自己的应用时都不会显现。 开放数据库 Supabase 中 Row Level Security 被关闭,或 Firebase 规则被设为 .read: true。陌生人的一次请求就能拿到你的用户数据。 泄露的密钥 Stripe、OpenAI 或 Supabase 管理密钥被打包进你网站的 JavaScript 中。任何人都能花你的钱或读取全部数据。 没人告诉你 安全工具是为安全团队打造的。如果你不写代码,警告就是一堆术语,修复只能靠猜。 粘贴你应用的地址,然后添加一条 DNS 记录或一个小文件。我们只检查所有者已验证的应用,并且在每次扫描前都会重新验证。 VibeShields 会加载你的线上站点,读取其代码,并用只读请求测试你的 Supabase 或 Firebase 数据库。不会改动任何内容,整个过程大约一分钟。 每个问题都会附带它的含义、为什么重要、修复步骤,以及一段可直接用于 Lovable、Bolt 或 Cursor 的提示词。粘贴、发布、重新检查。 我们从真实事故高发的地方入手,追求深度而非广度。 我们会尝试用每个 Supabase 站点都自带的公开密钥读取每一张表。如果陌生人能看到数据行,你会知道是哪张表,我们会和你一起编写 Row Level Security 策略。 我们会检查你的 Realtime Database 是否对任何请求都予以回应,并给你一套规则,把每个用户锁定在自己的数据范围内。 我们会读取你网站发送给每位访客的 JavaScript,寻找那些本应只存在于服务器上的密钥。 没有 CVE 编号,没有术语。每项发现都会说明暴露了什么、谁能利用它、今天该做什么。问一句“explain more”,AI 就会带你一步步了解。 你的 Supabase 管理密钥在网站代码中可见 这个密钥可以绕过你数据库中的所有安全规则。任何找到它的人都能读取、修改或删除你的全部数据。请先轮换密钥,然后把需要它的代码迁移到 Edge Function 中。 每次部署后重新检查 连接一个已签名的部署 hook,每次发布都会触发一次全新扫描。新的泄露在发布当天就会被发现,而不是几个月之后。 每周邮件 每周一:你的应用上次检查的时间、仍然开放的问题,以及最需要修复的事项。三十秒即可读完。 一个持续学习的系统 VibeShields 是一个自学习的 AI 安全系统,不是聊天机器人。当 AI 构建的应用中出现新类型的泄露时,它就会变成一项检查,每个应用在下一次扫描时都会获得这项检查。 应用验证并扫描完成后,你可以在网站上添加“Checked by VibeShields”徽章。它会显示你上次完成检查的日期,并且从不透露发现了什么。它是自愿开启的,你可以随时关闭。 我们故意说“已检查”,而不是“已保护”。没有扫描器能保证应用绝对安全,我们也不会假装可以。 Checked by VibeShields 2026年11月1日 嵌入代码 复制 <a href="https://vibeshields.com"> alt="Checked by VibeShields"> </a> 设计上安全 扫描器只发送 GET 请求,从不写入、删除或以任何人身份登录。 在首次扫描前,你需要证明你拥有该应用,并且我们在每次扫描前都会重新验证。 我们只保留足以展示问题的最少信息,比如密钥的前后几个字符。绝不保留完整密钥,也绝不保留你的用户数据行。 扫描器运行在独立的隔离 worker 中,无法访问我们的数据库。你的账户数据按用户隔离锁定。 不用。VibeShields 是为那些通过描述需求来构建应用的人打造的。每项发现都附带一段可粘贴到构建工具中的提示词,如果你更愿意自己点击操作 Supabase 或 Firebase,也有通俗的步骤说明。 不用。扫描器只做读取,发送少量 GET 请求,每个请求都有超时限制,每次扫描有硬性上限。它从不提交表单、登录或更改数据。 因为一个寻找敞开大门的工具,不应该替陌生人来开门。你添加一条 DNS 记录或一个小文件,我们在每次扫描前都会验证。对于你的 Supabase 或 Firebase 数据库,你添加一个小标记,这样我们只测试你控制的数据库。 我们从不存储完整密钥或你数据库中的任何数据行。如果我们发现一张开放的表,我们记录表名以及它响应了请求这一事实,而不是其中的内容。泄露的密钥以掩码形式保存,例如 sk-proj-••••Q7xa。 可以。检查针对的是你的线上网站及其数据库,所以是哪个构建工具做出来的并不重要。Bolt、Cursor、Replit、v0 以及手写的 Supabase 或 Firebase 应用都可以。修复提示词优先为 Lovable 编写,在其他工具中同样适用。 控制权在你手中。我们给你确切的提示词和步骤,你在构建工具中应用它们。然后我们重新检查,确认问题确实已修复。 它表示你的应用在所示日期经过了 VibeShields 的检查。这就是为什么上面写的是“Checked by”而不是“Secured by”。它表明你认真对待用户数据,而不是一种保证。 添加你的应用,完成验证,几分钟内就能获得第一份通俗易懂的报告。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。