环境与配置管理60 条

日志脱敏

让日志可用于排障但不出卖凭据:结构化字段过滤、正则脱敏、敏感键名单,前后端与网关统一处理。

CI/CD 与发布速查开发更新于 2026-10-13

日志脱敏是什么

日志脱敏让日志可用于排障但不出卖凭据:Authorization 头、token 与 password 参数、Cookie、证件号与手机号等,都要在落盘之前处理。手段分三层:应用侧结构化日志(避免拼字符串)、采集端字段过滤、网关对查询参数脱敏。验证靠抽样审计与「grep 敏感值」巡检,一次评审换不来长期可靠。

基本信息

适用平台应用服务、网关、容器与平台组件日志统一要求
对象Authorization 头、token/key/password 参数、Cookie、证件与联系方式
手段采集端过滤 + 应用侧结构化日志 + 网关查询参数脱敏
验证抽样审计日志内容;把「日志里 grep 敏感值」做成巡检
验证方式用样例日志跑一遍规则,检查是否有字段遗漏

典型使用场景

  • 统一接入:网关与服务的访问日志默认脱敏,业务无感
  • 排障与合规平衡:保留请求 ID 与用户哈希,既关联又不泄露
  • 外发前再处理:日志发往工单与群机器人前二次脱敏
  • 合规审计:个人信息字段按最小化原则进日志
  • 应急排查:出现疑似泄漏时全量扫描日志存储并整改
  • 审计留痕:脱敏动作本身记入审计日志,谁在何时访问过敏感字段可查

脱敏示意

脱敏示意
Authorization: Bearer ****
token=****
password=****
# 结构化字段示例:{"request_id":"r_88f2","token":"[REDACTED]","user_id":"u_1024"}

处理层次与对象

层次手段覆盖对象
应用结构化日志与序列化过滤请求体与请求头
采集端管道过滤规则容器与文件日志
网关查询参数脱敏URL 中的 token 等参数
外发二次脱敏与权限控制工单与通知渠道
排障仍需要关联信息:保留请求 ID、用户 ID(或哈希)、时间戳,替代原始敏感值,否则脱敏会拖慢定位。
脱敏名单集中维护:配置化并随新字段更新,别散落在各个服务的代码里各写一份。

易错点

  • 只在应用层脱敏、网关层漏掉:完整 token 出现在访问日志,两层都要覆盖
  • 把脱敏列表写死在代码:新增敏感字段要能快速配置生效,集中维护名单
  • 只测正常路径:异常堆栈与调试日志常绕过过滤器,异常分支同样要验证
  • 用简单截断代替掩码:保留头尾的规则在短值上等同未脱敏,统一全掩码或哈希

数据来源与参考

  • OWASP《Logging Cheat Sheet》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌