14. 风险、合规、安全与证据边界 · 已观察 · 门禁 6
安全门:身份来自会话,权限落实到对象
浏览器提交的user_id可以被伪造。
原知识点:多个接口信任浏览器传入的 user_id,而非服务端 session;应统一从认证会话派生身份并做对象级授权。
执行步骤
- 列出接口的读写对象、动作、敏感度、调用者和预期拒绝场景。
- 服务端只从验证后的会话/令牌取得主体,不信任请求中的user_id、role或owner字段。
- 每次对象操作执行对象级授权与租户边界检查,并采用默认拒绝和最小权限。
- 测试未登录、他人对象、枚举ID、角色降级、重复请求和并发;记录状态码且不泄露对象存在。
- 增加速率限制、审计日志、告警、密钥轮换和修复回归;高风险系统上线前专业安全审查。
可复制工作表
# 对象级授权与负向测试矩阵 触发章节/服务/版本/租户模型:__ 审查日期、负责人、独立复核:__ |接口与动作|主体来源|对象/租户归属|允许角色与服务端检查|未登录|他人对象/跨租户|角色越权|枚举|重复/并发|速率限制|日志与告警|结果| |---|---|---|---|---|---|---|---|---|---|---|---| |__|会话/令牌__|__|__|预期/实际__|__|__|__|__|__|__|PASS/FAIL__| 密钥版本、存储与轮换证据:__ 测试账号/样本与统一错误策略:__ 失败回滚与暂停条件:__ 复测汇总与最终决定:__
完整示例
示例(ID与数字非通用阈值):
服务files-api v4使用多租户T1/T2,审查日2026-08-01;工程负责人赵执行,安全复核人顾审阅SEC-31。主体只来自服务端验证的HttpOnly会话,body中的user_id一律忽略。测试账号为T1-owner-A、T1-editor-B、T2-owner-C。
列较多时可左右滚动;首列会固定,便于逐行比较。
| 接口与动作 | 主体来源 | 对象/租户归属 | 允许角色与服务端检查 | 未登录 | 他人对象/跨租户 | 角色越权 | 枚举 | 重复/并发 | 速率限制 | 日志与告警 | 结果 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| GET /files/:id | 签名会话subject | file.owner_id+tenant_id | 同租户owner/editor且逐对象匹配 | 401/401 | 统一404/404 | viewer为403/403 | 连续100个ID均统一404且无数据 | 同请求只读一致 | 60/分钟后429 | 记录request_id、subject、tenant、decision;5分钟5次拒绝告警 | PASS |
| DELETE /files/:id | 签名会话subject | owner_id+tenant_id | 仅owner,事务内再次校验 | 401/401 | 统一404/404 | editor 403/403 | 100个ID无存在性差异 | 同幂等键3次仅一条删除;并发2次一条执行、一条幂等成功 | 10/分钟后429 | 删除与拒绝均审计,告警到security@example.test | PASS |
| POST /exports | 短期服务令牌subject | job.tenant_id | member可导出本租户且字段白名单 | 401/401 | 跨租户404/404 | 只读访客403/403 | 20个tenant_id均不泄漏 | 同键3次只建1个job;并发锁通过 | 10/小时后429 | 记录input_hash、job_id、approver,失败率>2%暂停 | PASS |
Webhook密钥存于密钥管理器,版本key-2026-08;轮换演练中旧钥与新钥并行10分钟后撤旧,错误签名全部401。共18个正向、负向、枚举、重复和并发用例18/18通过;日志中对象ID脱敏且告警实际送达。任一跨租户读写、未验证签名、告警失效或错误率>2%立即冻结v4并回滚files-api v3。SEC-31独立复核通过。最终决定:PASS_FOR_LIMITED_RELEASE,仅小范围上线,不把本轮测试当作永久安全证明。
完成清单
- 身份只来自服务端验证的会话或令牌。
- 对象级与租户级授权覆盖每个读写动作。
- 负向、枚举、重复与并发测试留下证据。
- 高风险接口有日志告警、密钥轮换和独立安全复核。
适用 / 触发章节
完成后返回
逐入口门禁回流
- 从第 5 章进入:上线任何含身份、对象或租户边界的接口前;通过返回第 5 章;未通过修复 第 5 章。
- 从第 10 章进入:让分析或后台接口读取受限数据前;通过返回第 10 章;未通过修复 第 10 章、第 5 章。
- 从第 12 章进入:支付、订单或权益接口上线前;通过返回第 12 章;未通过修复 第 12 章、第 5 章。
- 从第 13 章进入:把高权限动作交给自动化、外包或团队前;通过返回第 13 章;未通过修复 第 13 章、第 5 章。
当前官方依据
平台规则会变化,行动前以打开后的当前官方页面为准。
适用条件
真实用户与支付数据上线。
来源:用户权限相关接口