# 09 — 统一 Access Log 请求与响应递归脱敏

**What to build:** Access Log 对 query、请求体和响应体使用同一套大小写不敏感的递归脱敏能力，覆盖嵌套对象和数组。日志先脱敏再执行 50KB 截断，并继续保留请求 ID、方法、路径、安全 query、状态、耗时、用户与终端信息及明确截断标志，方便排障而不泄露可复用凭证。

**Blocked by:** None — can start immediately

**Status:** completed

**架构通道:** Infrastructure。

**完整业务边界:** 本票收口公共敏感字段注册、query/请求/响应 JSON 脱敏、截断与访问日志元数据。明确不修改 Audit Event 或 Integration Log 模型、Writer 与查询，不改变业务响应内容。

- [x] 公共敏感字段至少覆盖密码、口令、Token、Authorization、Cookie、密钥、Secret、签名、Nonce、验证码、支付凭证和私密 URL，匹配大小写不敏感。
- [x] query、请求 JSON 和响应 JSON 复用同一递归规则，嵌套对象、数组、非字符串敏感字段均被不可逆替换。
- [x] 请求体和响应体分别先脱敏后按 50KB 截断，并输出可机器识别的截断状态，不因序列化失败回退记录未脱敏 JSON。
- [x] 脱敏后仍保留方法、路径、安全 query、状态、耗时、请求 ID、IP、User-Agent、用户标识及请求/响应摘要。
- [x] 日志、注释和告警均使用中文，用户可见响应继续使用统一错误与响应格式。
- [x] 真实 Fiber 测试捕获最终 JSON 日志，覆盖嵌套结构、数组、大小写变体、query、请求与响应、超长 body 和无法序列化场景。
