记录改动前后的基线,核心做法是:在每次修复或调整之前,先保存一份可对比的检测结果,改动完成后再用同一套工具、同一套参数重新检测,把两次结果逐项对照。基线不是一份“当前有没有漏洞”的简单结论,而是一组带时间、范围、参数和原始输出的记录。只有前后条件一致,差异才能归因于改动本身,而不是扫描范围变化、工具版本升级或环境波动。
一份能用的基线,至少包含四项信息,缺一项都会让后续对比失去意义。
适用前提是:你能够在改动前后访问同一套被测对象,并且能控制检测参数不变。如果系统在两次检测之间还发生了其他变更,对比结论就要打折扣,此时应把额外变更一并记录。
假设你要修复一个已知的注入类问题,可以按下面的顺序操作。例子仅用于说明流程,具体命令和工具名需按你的实际环境替换。
scope.txt,后续两次检测都读取这个文件。tool --version,把输出粘贴进基线说明。baseline-before-日期.json 或对应格式。git rev-parse HEAD 的结果。baseline-after-日期.json。如果工具本身支持“与上次结果对比”的功能,可以直接使用;如果不支持,就用文本差异工具或脚本按条目 ID 比对。关键是比对维度要固定,不能这次按类型比、下次按路径比。
验收信号可以从三个角度检查。
需要提醒的是,扫描结果受网络状态、目标响应超时、认证会话过期等因素影响,同一配置两次扫描也可能出现少量波动。因此不要把单次差异直接当作结论,对关键条目应做人工复核,确认是真实变化还是检测噪声。
第一类误区是只记录“漏洞数量”。数量从 10 降到 8,可能是修复了两个,也可能是两个路径本次未被扫到。第二类误区是改动前后用了不同工具或不同严重级别阈值,这样得到的差异没有分析价值。第三类误区是把基线当成一次性任务,实际上每次涉及安全边界的改动都值得重新建立基线。
另外要区分“可能原因”和“已经定位的原因”。某条目在改动后消失,可能原因包括修复生效、路径不可达、检测被拦截、规则误报;只有在复核请求与响应之后,才能说已经定位。记录基线时把“现象”和“结论”分开写,后续排查会省很多力气。
下一步建议:为你当前负责的系统建立第一份基线文件,先只覆盖最核心的一个域名或接口,跑通“记录—改动—复测—比对”这一整条链路,再逐步扩大范围。