代理侧的日志脱敏

插件自身不会把 access_token / AppSecret 写进日志、异常消息与同步记录(见日志与错误信息的脱敏),但反向代理服务器的访问日志(access log)默认会记录完整请求行——/cgi-bin/token?...&secret=...、/cgi-bin/draft/add?access_token=... 这类带凭据的查询串会原样落到代理的日志文件里。这份日志属于代理的职责范围,插件无法代管,建议一并脱敏:

# 只记录「方法 + 路径」,不记录查询串(access_token / secret 都在查询串里)
log_format wechat_masked '$remote_addr - $remote_user [$time_local] "$request_method $uri" '
                         '$status $body_bytes_sent "$http_referer" "$http_user_agent"';
access_log /var/log/nginx/wechat-proxy.log wechat_masked;
  • 默认的 $request / $request_uri 含完整请求行与查询串,改成 $request_method $uri 即可丢掉查询串;
  • 排障时若确实需要查询串,可临时切回默认格式,排查完再改回;也可用 map 只保留非敏感参数;
  • 同一台机器上的网关 / 负载均衡(Cloudflare、阿里云 SLB、Kong 等)的访问日志同理,建议关闭或对查询串脱敏。