版本:v1.0|执行:小齐|时间:2026-09-14 00:2x|基线 HEAD:9b88ece9(推送后0ef1efe3)
依据设计文档:docs/reports/gpt6-评审-2026-09-13/03-波波小齐苦力活长线包设计.md(14 要素 / 12 字段证据 / P0-P3)
依赖:B02(角色矩阵)、用户与审计实现;不改核心代码,缺陷回原包
Q07「用户隐私与审计巡检包」。目标:核验①敏感字段脱敏、②越权读取防护、③注销/导出/隐私设置是否存在、④关键操作是否有审计留痕。
users 表隐私字段盘点(staging)users、audit_log、order_intervention_logs、order_events、document_audit_logs、merchant_updatesGET /api/miniapp/identity、GET /api/miniapp/orders/{id}、GET /api/miniapp/ordersbackend/app/routers/*.py| 项 | 口径 |
|---|---|
| 敏感字段 | openid / unionid / phone / 密码哈希 / 证件类 |
| 脱敏合格 | 对端接口响应中不出现上述字段原文 |
| 越权合格 | 访问他人资源返回 404(防 id 探测)而非 200 泄露 |
| 审计合格 | 关键操作在审计表有可追溯记录(含操作人/角色/时间) |
库结构盘点 → 路由扫描 → 实接口取字段 → 非破坏性越权探针 → 分级登记。
全部只读;越权探针使用不属于自己的资源 ID,不写入、不改状态。
本包只取字段名与统计值,不落任何真实手机号/openid/密码值;审计样本仅取动作与角色。
| 项 | 设计判据 | 实测 |
|---|---|---|
| 导出与注销 | 「导出和注销有审计记录」 | 端点零命中(功能不存在,遑论审计) |
| 关键操作可追溯 | 「关键操作可追溯」 | audit_log 仅 1 种动作(payment_mode_change) |
audit_log?(建议:登录、权限/角色变更、审核、退款、核销、导出、注销)document_audit_logs 目前 0 条,是否为预留?users 表)存在隐私字段:openid、unionid、phone、nickname、avatar_url、admin_password_hash、status、token_version、last_login_at、is_test
GET /api/miniapp/identity|环境:staging|版本:0ef1efe3mode / is_admin / is_company_staff / is_employee / staff_role / permissions / memberships / identitiesGET /api/miniapp/orders/1(订单不属于当前 token 用户)HTTP 404 {"code":404,"message":"订单不存在"}GET /api/miniapp/orders → HTTP 200| 表 | 行数 | 覆盖 |
|---|---|---|
audit_log | 5 | 仅 payment_mode_change(@merchants, role=owner) |
order_intervention_logs | 4 | 订单干预 ✅ |
order_events | 263 | 订单事件 ✅ |
document_audit_logs | 0 | 空(预留?) |
merchant_updates | 8 | 商户变更 ✅ |
audit_log(字段齐全:table_name/record_id/action/detail/operator_id/operator_role/created_at)payment_mode_change 一种动作;审核、退款、核销、登录、权限/角色变更、导出等均无留痕delete|deletion|export|privacy|consent|close-account|withdrawwithdrawals,与隐私无关)document_audit_logs 0 行:疑为预留表,待确认