标准答案

  1. 先定义敏感字段分类,例如密码、Token、Cookie、身份证号、银行卡、完整地址和原始请求体,并在日志框架、网关和异常处理中统一脱敏。
  2. 结构化日志只记录定位所需字段,如请求标识、接口名、耗时、错误码、脱敏后的主体标识和依赖结果,不默认打印所有对象。
  3. Authorization、Cookie、Set-Cookie、签名、密钥和上传内容应默认排除;必要的排障采样也要经过权限、时效和审计控制。
  4. 对外错误响应返回稳定错误码和 requestId,内部异常细节只进入受控日志和追踪系统。
  5. 日志存储、查询、导出、告警和保留期限都需要最小权限和审计,避免“写入时脱敏、导出时又泄露”。

题目解析

日志是高价值数据集:它把多个请求、身份和系统细节集中在一起。泄露日志往往比单个接口泄露影响更广。

脱敏规则要覆盖序列化失败、第三方 SDK、网关访问日志和异步任务;只处理业务应用日志会留下旁路。

常见误区

  • 为了排查问题直接记录完整 Header、完整 body 或异常对象。
  • 把手机号、身份证号或 Token 简单截取后仍保留可重建信息。
  • 认为只有生产日志需要脱敏,测试、监控和错误上报可以随意记录。

作者信息