20 lines
1.6 KiB
Markdown
20 lines
1.6 KiB
Markdown
# 09 — 统一 Access Log 请求与响应递归脱敏
|
||
|
||
**What to build:** Access Log 对 query、请求体和响应体使用同一套大小写不敏感的递归脱敏能力,覆盖嵌套对象和数组。日志先脱敏再执行 50KB 截断,并继续保留请求 ID、方法、路径、安全 query、状态、耗时、用户与终端信息及明确截断标志,方便排障而不泄露可复用凭证。
|
||
|
||
**Blocked by:** None — can start immediately
|
||
|
||
**Status:** ready-for-agent
|
||
|
||
**架构通道:** Infrastructure。
|
||
|
||
**完整业务边界:** 本票收口公共敏感字段注册、query/请求/响应 JSON 脱敏、截断与访问日志元数据。明确不修改 Audit Event 或 Integration Log 模型、Writer 与查询,不改变业务响应内容。
|
||
|
||
- [ ] 公共敏感字段至少覆盖密码、口令、Token、Authorization、Cookie、密钥、Secret、签名、Nonce、验证码、支付凭证和私密 URL,匹配大小写不敏感。
|
||
- [ ] query、请求 JSON 和响应 JSON 复用同一递归规则,嵌套对象、数组、非字符串敏感字段均被不可逆替换。
|
||
- [ ] 请求体和响应体分别先脱敏后按 50KB 截断,并输出可机器识别的截断状态,不因序列化失败回退记录未脱敏 JSON。
|
||
- [ ] 脱敏后仍保留方法、路径、安全 query、状态、耗时、请求 ID、IP、User-Agent、用户标识及请求/响应摘要。
|
||
- [ ] 日志、注释和告警均使用中文,用户可见响应继续使用统一错误与响应格式。
|
||
- [ ] 真实 Fiber 测试捕获最终 JSON 日志,覆盖嵌套结构、数组、大小写变体、query、请求与响应、超长 body 和无法序列化场景。
|
||
|