14. 风险、合规、安全与证据边界 · 已观察 · 门禁 6

安全门:身份来自会话,权限落实到对象

浏览器提交的user_id可以被伪造。

原知识点:多个接口信任浏览器传入的 user_id,而非服务端 session;应统一从认证会话派生身份并做对象级授权。

执行步骤

  1. 列出接口的读写对象、动作、敏感度、调用者和预期拒绝场景。
  2. 服务端只从验证后的会话/令牌取得主体,不信任请求中的user_id、role或owner字段。
  3. 每次对象操作执行对象级授权与租户边界检查,并采用默认拒绝和最小权限。
  4. 测试未登录、他人对象、枚举ID、角色降级、重复请求和并发;记录状态码且不泄露对象存在。
  5. 增加速率限制、审计日志、告警、密钥轮换和修复回归;高风险系统上线前专业安全审查。

可复制工作表

# 对象级授权与负向测试矩阵
触发章节/服务/版本/租户模型:__
审查日期、负责人、独立复核:__

|接口与动作|主体来源|对象/租户归属|允许角色与服务端检查|未登录|他人对象/跨租户|角色越权|枚举|重复/并发|速率限制|日志与告警|结果|
|---|---|---|---|---|---|---|---|---|---|---|---|
|__|会话/令牌__|__|__|预期/实际__|__|__|__|__|__|__|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签名会话subjectfile.owner_id+tenant_id同租户owner/editor且逐对象匹配401/401统一404/404viewer为403/403连续100个ID均统一404且无数据同请求只读一致60/分钟后429记录request_id、subject、tenant、decision;5分钟5次拒绝告警PASS
DELETE /files/:id签名会话subjectowner_id+tenant_id仅owner,事务内再次校验401/401统一404/404editor 403/403100个ID无存在性差异同幂等键3次仅一条删除;并发2次一条执行、一条幂等成功10/分钟后429删除与拒绝均审计,告警到security@example.testPASS
POST /exports短期服务令牌subjectjob.tenant_idmember可导出本租户且字段白名单401/401跨租户404/404只读访客403/40320个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 章。

返回风险门禁总览

当前官方依据

平台规则会变化,行动前以打开后的当前官方页面为准。

适用条件

真实用户与支付数据上线。

来源:用户权限相关接口