用途:这是一份 Security Guidelines(安全指南),用于指导 inbox-zero 项目中 API 路由的开发,防止未授权访问、越权操作与信息泄露。
主要能力:
- 认证与授权中间件:处理用户数据的 API 必须使用 withAuth(用户级操作)或 withEmailAccount(邮箱账号级操作);公共/自定义鉴权端点使用 withError。
- 数据访问控制:所有 Prisma 查询必须限定到已认证用户或账号,例如 findUnique 的 where 中同时带上 id 与 emailAccountId,避免 IDOR。
- 资源归属校验:操作前验证资源属于当前用户,否则抛出 SafeError(返回 404,不泄露资源是否存在)。
- Cron 接口安全:Cron 端点必须使用 withError,并通过 hasCronSecret(request) 或 hasPostCronSecret(request) 校验密钥,未授权时用 captureException 记录并返回 401;CRON_SECRET 需在 .env.local 配置,禁止弱口令。
- 输入校验:参数校验类型、格式与长度;请求体用 Zod schema 校验,防止批量赋值与权限提升。
- 错误处理:使用统一错误格式,避免错误信息泄露内部 ID 或逻辑。
使用方式:新建 API 路由时选用合适中间件并按用户/账号过滤查询;Cron 端点补充密钥校验;提交前对照文档中的检查清单(认证、授权、输入校验、数据保护、查询安全)逐项确认。
适用场景:inbox-zero 项目的 API 路由开发与代码安全审查,重点关注新路由、数据库查询、参数处理、错误响应与批量操作。
限制:资料未提供具体版本、依赖安装方式、收费信息或运行环境要求,暂未提供。