二手交易平台用户上传的商品图,下载原图后用 exiftool 能读到 GPSLatitude 31.23 和拍摄设备型号,连拍摄时间都带着。安全扫描把这条列成了高危。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,上传流程只做了压缩和改名,没有清理元数据。手机拍照默认写入 GPS 和机型,原图直传就一起进了对象存储。CDN 又没做脱敏,任何人拿到 URL 都能读。

「EXIF GPS 泄露」这类改动最怕改一半,回滚脚本先准备好,再动生产。改完顺手把文档补一句,省得下次自己重新推一遍。

exiftool -gps:all= -overwrite_original upload/1.jpg
from PIL import Image
im = Image.open(src); data = list(im.getdata())
clean = Image.new(im.mode, im.size); clean.putdata(data); clean.save(dst, quality=88)

监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

具体做法是,上传后统一重写图片 丢掉 EXIF 只保留方向信息;用 exiftool 批量扫存量图 找出带 GPS 的;对存量对象做一次原地重写 或者删掉重传;把剥离步骤放进上传管线 别只靠前端。

最后用这个标准收尾,重新上传的图片用 exiftool 查不到 GPS 字段,方向仍然正确,安全扫描这一项不再告警。

作者 9823189