如果任何登录用户都可以读取其他用户的行,则您的数据库信任应用程序的行为。我使用行级安全策略和角色将规则移入PostgreSQL本身,然后通过测试证明一个用户无法访问另一个用户的数据。
我将设置PostgreSQL行级安全性,以便每个用户只能看到自己的数据,包括Supabase
对最多5个表进行行级安全审查,每个漏洞都通过查询显示。
- 审查最多5个表
- 书面报告
- 示例查询
对最多10个表设置策略和角色,并进行测试以证明规则有效。
- 最多10个表的策略
- 书面报告
- 示例查询
最多25个表,数据库中的计划限制,CI中的迁移和测试。
- 最多25个表,计划限制,CI
- 书面报告
- 示例查询
请求定制报价
一览
关于此服务的关键详情,帮助您做出决定。由 Zinn Hub 生成,非卖家生成。
价值定位
执行层
支持的平台
工作证明
交付格式
您将收到
完整描述
任何拥有用户账户、付费计划或在一个数据库中有多个团队的应用都必须决定谁可以查看哪些行。如果该规则仅存在于应用代码中,那么当有人以其他方式访问数据时,它就会失败:有人忘记保护的新端点、同一数据库上的第二个应用,或者Supabase为您的表生成的API。行级安全将规则放在数据所在的位置。
我已经在NDA下的订阅产品上完成了这项工作:对表进行行级安全策略,并为每个订阅层级设置单独的数据库角色,因此计划包含的内容由PostgreSQL强制执行,而不是由可能被遗忘的检查来执行。
在入门版中,我审查最多五个表拥有或缺乏的策略,并发送一份书面漏洞列表,其中包含一个显示每个漏洞的示例查询。标准版编写或修复最多十个表的策略,设置您的应用所需的角色,将其作为迁移文件交付,并添加测试,其中用户A尝试读取和更改用户B的行并失败。高级版涵盖最多二十五个表,添加在数据库中强制执行的计划或层级限制,并在CI中运行测试。
在Supabase上,相同的PostgreSQL功能适用,其中auth.uid()和JWT声明在策略内部使用。在普通PostgreSQL上,策略从后端为每个请求设置的会话设置中读取当前用户。
无电话。每个套餐都附带一份关于谁可以看到什么的通俗易懂的说明;在标准版和高级版中,策略也作为迁移文件到达您的存储库,并附带测试。在交付后14天内,我将免费修复任何与我们约定不符的问题。
完成项目的步骤
1. 映射数据 - 我列出表、每行所有者以及谁应该读取或更改它:所有者、团队成员、管理员、每个计划。
2. 审查现有内容 - 根据该地图检查当前策略、授权和角色,并用显示每个漏洞的查询记录下来。
3. 策略和角色 - 策略按表和按操作编写,并为计划或团队设置角色,作为您可以审查的迁移文件。
4. 证明 - 测试以不同用户身份登录,并尝试读取和更改彼此的数据。每个禁止的操作都必须失败,每个允许的操作都必须成功。
5. 移交 - 一份关于谁可以看到什么的简短说明,迁移文件,以及当新表出现时如何添加策略。
查看选项并购买 — 起价 $40.00
每位 Zinner 在加入平台前都会经过审查和批准。
所有服务均有我们的质量保证承诺支持。
您的付款受保护,直到您批准交付的工作。
比较套餐
| 功能 | 入门 | 标准 | 高级 |
|---|---|---|---|
| 交付时间 | 2 天 | 5 天 | 10 天 |
| 修订 | 1 | 2 | 3 |
| 范围 | 审查最多5个表 | 最多10个表的策略 | 最多25个表,计划限制,CI |
| 书面报告 | ✓ | ✓ | ✓ |
| 示例查询 | ✓ | ✓ | ✓ |
服务详情
常见问题
应用检查保护您记住的路径。行级安全涵盖在您的应用数据库角色下运行的每个查询,包括稍后添加的端点和对Supabase API的直接调用。超级用户、表所有者和Supabase的服务密钥设计上绕过它,这就是为什么这些凭据保留在服务器上的原因。大多数团队同时保留这两种检查。
如果策略调用了慢速函数或缺少索引,则可能会。我在编写策略时会考虑到这一点,并且审查会列出任何需要索引的策略。
不需要。没有数据的模式足以编写和测试策略。测试在我创建的种子数据上运行。
不。这种形式的行级安全是 PostgreSQL 的一个功能,而此服务是围绕 PostgreSQL 构建的。
客户评论
看看我们的客户对这个Zinn的评价







