ClearedToShip
high

Supabase RLS 最佳实践

问题所在

启用 RLS 只完成了一半工作。即使 RLS「开着」,过于宽松或写错的策略仍会让数据暴露。下面这些实践能让 Supabase 行级安全真正保护你的数据。

分步操作

  1. 1

    默认拒绝,显式允许

    为每张表启用 RLS,使访问默认被拒绝,然后添加范围狭窄的策略。绝不要在存放私密数据的表上使用 'true' / 全部允许式策略。

  2. 2

    把策略限定到用户

    使用 auth.uid() 把数据行限定到其所有者,例如 USING (auth.uid() = user_id)。为每种操作(select/insert/update/delete)分别编写策略,并在写操作上使用 WITH CHECK。

  3. 3

    防范权限提升

    把 service-role 密钥仅保留在服务端——它会绕过 RLS。不要暴露会绕过你策略泄露数据的视图或 SECURITY DEFINER 函数。

  4. 4

    以匿名身份和以用户身份测试

    确认匿名请求什么都返回不了,且一个用户无法读取或写入另一个用户的数据行。重新运行免费 RLS 检测来确认。

想要的不只是修复,还要有人核实?

修复只是第一步。ClearedToShip 的复核会确认修复确实有效,并为你出具一份签署的、带保险的上线放行许可。加入抢先体验:

免费上线就绪扫描
获取免费扫描