风控接口回传的报文里带着完整身份证号和银行卡号,我们这边入库前才做脱敏,传输链路上是明文。日志里能对上时间点,这种反而好排。
对方接口不支持字段裁剪,也没有加密通道以外的保护。协议里没约定最小必要字段,回传什么就收什么。这一点先确认清楚,后面就不用反复试。
resp = requests.post(url, json=payload, verify=True, timeout=5)
print({k: v for k, v in resp.json().items() if k in ('result', 'score')})
围绕「第三方回传数据脱敏」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。
别只看报错的最后一行,往上看几行,真正的起因通常在上面。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
处理上按这个顺序:和对方确认只需返回结论字段;传输走 HTTPS 并校验证书;收到后立即脱敏 原始报文不落盘;需要留证时只存哈希。
结果对不对很好判断,回传报文只剩结论字段 落盘内容里没有明文证件号。
