排查超时的时候把请求体整个打了出来,日志里躺着一条带签名的原图地址,点开就能下载身份证照片。日志里能对上时间点,这种反而好排。

日志用的是全量请求转储,URL 里的签名参数有效期七天,等于把图片公开了七天。脱敏只处理了手机号,没管地址里的参数。这一点先确认清楚,后面就不用反复试。

import re
log = re.sub(r'(https?://[^?]+)\?.*', r'\1?***', line)
print(log)

「识别日志图片地址脱敏」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

报错里带路径的,先去看那个路径在不在、权限对不对。同一份配置存在多处的,先确认改的是被加载的那一份。

处理上按这个顺序:日志里只记图片哈希和前 20 个字符;签名地址改成五分钟过期;关闭请求体全量打印 只打关键字段;清理已经落盘的旧日志。

结果对不对很好判断,日志里再也搜不到完整签名地址 旧文件也清理完毕。

作者 9823189