Lovable 应用安全检查清单:你的应用安全吗?
Lovable 平台本身的安全和你在它上面构建的应用的安全,是两回事。Lovable 会扫描常见错误,但你的应用到底有多安全,取决于它自己的访问规则、密钥和服务器代码。请检查:每张暴露的表都开启了行级安全且与“谁可以看什么”相符;没有任何 secret 密钥到达浏览器;支付在服务器端确认;有人在盯着线上应用。
- CVE-2025-48757 的成因
- 行级安全未开启,或范围过宽
- 可以安全发布
- Supabase publishable(anon)密钥
- 绝不能发布
- service role 或其他 secret 密钥
- 何时复查
- 每次涉及数据或访问权限的改动之后
Lovable 安全吗?这是否意味着我的应用也安全?
Lovable 表示其支持 SOC 2 和 GDPR 要求,并在信任中心公布了安全文档。这涵盖的是 Lovable 的平台:它的基础设施、访问控制和员工。它不涵盖你应用内部的规则,因为那些规则是你(在 Lovable 的帮助下)写的。
Lovable 的安全扫描会在你每次发布时运行一次快速检查:数据库审查、依赖审计和 MCP 服务器检查。手动启动(Lovable Enterprise 客户可按计划启动)的深度扫描还会审查访问控制、未认证的端点、注入、泄露的密钥、支付、认证和暴露的个人数据。Lovable 自己的文档明确表示,这些工具无法保证完全安全。请把扫描当作烟雾报警器,而不是全面检查。
CVE-2025-48757 是什么?会影响我的应用吗?
CVE-2025-48757 于 2025 年 5 月发布,描述了 2025 年 4 月 15 日及之前由 Lovable 生成的网站中行级安全策略不足的问题,未经认证的攻击者可借此读取或写入数据库表。美国国家漏洞数据库将其列为严重级别,CVSS 3.1 评分 9.3,并注明 Lovable 对此有异议,理由是每位客户应负责保护自己应用的数据。
报告该漏洞的研究员 Matt Palmer 表示,他扫描了 1,645 个项目,在其中 170 个项目中发现了 303 个存在漏洞的端点,并表示 Lovable 于 2025 年 4 月随 Lovable 2.0 推出了安全扫描。无论你如何看待这一争议,实际教训都一样:如果你的应用是在那之前生成的,或者之后你改动过表,请自己检查策略。策略存在,不等于策略正确。
Lovable 安全检查清单应涵盖哪些内容?
| 检查项 | 为什么重要 | 如何测试 |
|---|---|---|
| 暴露 schema 中的每张表都开启 RLS | 没有它,Supabase 会让任何拥有授权的角色读写整张表 | 运行 Supabase 的 Security Advisor;lint 0013(rls_disabled_in_public)会标记出来 |
| 策略符合你的规则 | 像 USING (true) 这样的策略能通过扫描,却仍然对所有人放行 | 以用户 A 登录,通过 API 请求用户 B 的数据行,预期什么都拿不到 |
| 开启了 RLS 但没有策略的表 | 它们会拒绝一切,表现为功能失效,而不是数据泄露 | Advisor lint 0008(rls_enabled_no_policy);然后编写该功能所需的策略 |
| 浏览器中没有 secret 密钥 | service role 密钥会绕过所有 RLS 策略 | 在构建出的 JavaScript 中搜索 sb_secret_ 或旧版 service_role 密钥;轮换任何曾被发布过的密钥 |
| 所有涉及费用的操作都在服务器端检查 | 客户端代码可以被使用者自行修改 | 用改过的价格或方案直接调用你的边缘函数,预期会被拒绝 |
| 对注册、登录和 AI 调用进行限流 | 不限次数的请求会导致滥用或意外账单 | 在预发布环境中用脚本快速发出 100 个请求,确认大部分被拒绝 |
| 泄露密码防护,以及管理员的多因素认证 | 在其他泄露事件中被重复使用的密码,是常见的入侵途径 | 注册时尝试使用一个已知泄露过的密码 |
| 审计日志和错误监控 | 没有记录的事情,你无从调查 | 在预发布环境中做一次管理操作,然后在日志中找到它 |
如何修复 Lovable 应用中的 Supabase RLS 错误?
RLS 错误分为截然相反的两类,先弄清楚你遇到的是哪一类会很有帮助。
- 权限被拒绝(Postgres 错误 42501,或返回空结果)。RLS 已开启,但没有策略允许该请求。这说明 RLS 在正常工作。请编写能让功能正常运行的最窄策略,例如只允许所有者列等于当前登录用户 ID 的数据行。
- 所有人都能正常访问一切。这是更危险的情况。像 USING (true) 这样的策略,或者没打开 RLS 开关,会让任何用户通过。Supabase 的顾问会标记宽松策略(lint 0024,permissive_rls_policy),以及在 RLS 关闭时仍存在的策略(lint 0007,policy_exists_rls_disabled)。
- 读取用户元数据的策略。Supabase 警告不要基于用户可以自行编辑的元数据编写策略(lint 0015,rls_references_user_metadata)。请改用由你的服务器控制的表,例如团队成员关系表。
当你让 Lovable 修复某条策略后,请重新运行双用户测试。一条让错误消失的提示词,可能是通过放宽访问权限做到的——而这恰恰是你想要避免的故障。
在 Lovable 应用中,哪些密钥可以安全暴露?
Supabase 的文档说明,publishable(anon)密钥可以安全暴露,因为它只能访问行级安全所允许的内容。secret 密钥(包括 service role 密钥)会绕过所有 RLS 策略,绝不能出现在浏览器、已发布的应用或源代码管理中。术语表中关于 anon 密钥与 service role 密钥的条目解释了两者的区别。第三方密钥,例如 Stripe 或邮件服务商的密钥,应放在边缘函数的密钥设置中,而不是应用代码里。参见密钥管理。
线上的 Lovable 应用应该多久复查一次?
每次涉及数据、访问权限或支付的改动之后都要复查,其他方面则按计划定期复查:依赖会出现新的漏洞,密钥应当轮换,新的表也会带来新的策略。这就是为什么安全作为一种习惯,比作为一次审计更有效。在我们的方案中,每一处改动进入生产环境前都会运行安全检查、代码审查和回归测试,并由作者以外的工程师批准。
常见问题
用 Lovable 做真正的商业应用安全吗?
Lovable 是构建和打磨应用的一个合理选择,它也会扫描常见的安全错误。成品应用是否安全,取决于它自己的访问规则、密钥和服务器代码,你应该在真实用户和真实数据到来之前验证这些。Lovable 的文档表示,其扫描无法保证完全安全。
我的 Lovable 应用中的 Supabase anon 密钥是安全问题吗?
不是。Supabase 的文档说明 publishable(anon)密钥可以安全暴露,因为它只能访问行级安全所允许的内容。只有在 RLS 关闭或范围过宽时,它才会成为问题。service role 密钥则不同:它会绕过 RLS,绝不能出现在浏览器中。
CVE-2025-48757 还会影响 Lovable 应用吗?
该 CVE 涵盖 2025 年 4 月 15 日及之前由 Lovable 生成的网站,Lovable 对此有异议。此后 Lovable 增加了安全扫描。任何应用,无论新旧,都仍可能发布范围过宽的策略,所以请用两个用户账户测试你自己的表,而不要只看日期。
一次 Lovable 安全审查要花多少钱?
许多自由职业者和公司以固定价格提供一次性审查。在 Plutonapps 方案中,安全检查和代码审查作为月费的一部分,在每次改动时运行,同时还包括构建、测试、发布和运行应用。方案和价格见我们的价格页面。
我可以自己做这些安全检查吗?
可以。Lovable 在你发布时会运行快速扫描,Supabase 的 Security Advisor 就在你的项目控制台中,清单中的双用户测试只需要两个测试账户。独自一人更难做到的,是在应用上线的整个期间,每次改动都坚持做。
来自我们的案例
本页术语
相关对比与指南
- Lovable 应用在生产环境出问题?如何让它达到上线标准 — 为什么在预览中正常的应用会在真实用户面前出错,哪些检查能让它达到上线标准,以及谁来保持它运行。
- 如何从 Lovable Cloud 迁移到你自己的 Supabase — Lovable Cloud 与自有 Supabase 的对比、导出包含和遗漏的内容,以及让生产环境持续运行的切换计划。
- 如何雇用 Lovable 开发者(以及费用多少) — 从费用、范围以及之后由谁运行应用三方面,对比自由职业者、Lovable 合作伙伴公司和工程订阅。
- 方案与价格
来源
本页所有外部事实均已于 30 September 2026对照所附来源核实。价格和方案会变化,请点击链接查看最新数据。