列表页显示 138****8000,抓包看接口响应里 phone 字段还是完整号码,前端只是用脚本把中间几位盖住了。日志里能对上时间点,这种反而好排。
脱敏放在前端做,接口原样下发。任何人打开开发者工具或直接调接口都能拿到明文,等于没脱。这一点先确认清楚,后面就不用反复试。
curl -s 'https://api.example.com/users?page=1' \ -H "Authorization: Bearer $T" | jq '.data[0].phone'
「接口明文下发字段」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
处理上按这个顺序:脱敏收到服务端 按角色决定返回粒度;接口序列化时统一处理 不靠前端;前端只负责展示 不再二次处理;用接口工具直接请求确认返回就是掩码。
结果对不对很好判断,直接请求接口拿到的就是掩码 抓包看不到明文。
