SuperAPI AI 工具集

nestjs-security-isolation

安全与审计

查看项目

更新于 10-15 22:13

技能介绍

用途:在 NestJS 多租户应用中强制执行严格的多租户隔离,所有以子实体为中心的数据须通过 PostgreSQL 行级安全(RLS)和服务层校验双重保护。优先级为 P0(关键)。

主要能力与工作流:

  1. 迁移:建表时启用 ENABLE ROW LEVEL SECURITY,并用 current_setting('app.current_user_id') 定义策略。
  2. 实体逻辑:在实体类上添加 @Security JSDoc。
  3. 安全文档:在 SECURITY.md 中登记新表及其访问逻辑。
  4. 服务校验:任何持久化操作前调用 childrenService.validateChildAccess(childId, userId)。

核心准则:每个关联子实体或家庭的新表必须在创建迁移中启用 RLS;访问逻辑集中化,不得重复实现,统一使用 ChildrenService 做子实体/家庭成员校验;SECURITY.md 为安全事实来源,RLS 策略变更须同步更新;数据隔离在控制器层通过嵌套路由 /children/:childId/... 强制;使用 Response DTO 避免泄露内部数据库 ID 或元数据。

反模式:禁止创建未启用 RLS 的关联子实体的公开表;禁止在服务中编写原始 SQL 访问检查;禁止在未更新 SECURITY.md 与实体 JSDoc 的情况下合并 RLS 变更;禁止对子实体数据使用 /domain/:id 形式的根 ID 路由,必须按 :childId 限定作用域。

限制:资料仅提供概念性工作流与规范,未提供具体代码示例、安装命令、版本要求或配置细节,相关实现细节暂未提供。