把被删除页面从当前抓取清单里去掉,同时把它的最后一次完整检测结果按固定快照存档,是保留历史对比价值的核心做法。删除只应改变“现在是否继续检测”,不应抹掉“过去曾经检测到什么”。如果直接把记录清空,后续再看到同一路径或同一主机时,就失去了判断它是恢复、迁移还是新建的依据。
在网址安全性检测里,页面消失通常有几种原因:站点改版、路径合并、内容下架、域名解析调整,或者只是抓取入口变化。这些原因对历史对比的意义完全不同。检测记录一旦跟着页面一起删掉,后面就无法区分“这个地址以前存在过且当时有风险信号”和“这个地址从来没被纳入过检测”。
更稳妥的处理是保留一条最小历史档案:原始地址、最后一次成功检测时间、当时的响应状态、证书与跳转链结果、页面内容指纹,以及删除判定所依据的证据。这样做的代价是存储和查询成本会缓慢上升,但换来的是可追溯性。若页面数量很大,可以只对“曾经出现过风险信号”或“结构层级较高”的地址保留完整快照,其余只留摘要。
假设某站点在改版后,/old/login 这个地址返回 404,但三个月后又以新路径出现。团队面临两种做法:一是删除该地址的全部检测记录,二是在历史库中保留最后一次快照并标记为“已删除”。
选择第一种做法的条件是:该地址从未承载登录、支付或表单提交,也没有出现过证书异常、混合内容或可疑跳转。此时删除记录的代价较低,因为即使它以后重现,重新检测也能较快得出结论。
选择第二种做法的条件是:该地址曾经处理过用户输入,或最后一次检测中存在证书链不完整、脚本来源变化等记录。此时保留快照的价值在于,当它重新出现时,可以直接对比新旧证书、跳转目标和页面结构,而不是从零开始。代价是历史库需要额外字段来标记删除时间、删除判定依据和快照版本。
一个实际动作是:先给每条记录增加“状态”和“最后确认时间”两个字段,状态至少区分“活跃”“已删除”“待复核”。执行后,删除操作只把状态改为“已删除”,不再物理清除。这个动作会直接影响下一步——后续巡检可以只查询“活跃”记录,而历史对比查询则带上“已删除”记录,两者互不干扰。
不是所有字段都值得长期保留。对网址安全性检测而言,以下字段在历史对比中通常比页面正文更有用:
页面正文可以只保留指纹而非全文,避免存储膨胀。若某次检测涉及表单提交或登录流程,应只记录结构特征和字段数量,不保留用户输入内容。这样既满足历史对比,又不引入额外数据风险。
历史对比最常见的误判,是把检测口径变化当成页面变化。例如,两次检测使用了不同的入口、不同的超时设置,或者一次跟随了跳转、一次没有跟随,结果就会显示“证书变化”或“资源变化”,实际只是检测条件不同。
因此,在把两条记录放在一起比较之前,先核对检测入口、超时设置、是否跟随跳转、是否执行脚本这几项是否一致。若不一致,应把差异标注为“口径差异”,而不是直接归因为页面风险变化。第三方估算流量、搜索引擎报告和站内统计的口径本来就不同,不能因为某一项数字归零就断定页面已被处理或风险已解除;归零还可能来自采集遗漏、入口变更或统计周期错位。
保留历史数据的目的不是堆积记录,而是让每一次“已删除”的判定都能被复核。建议为每条删除记录附上判定依据:是返回了 404、410,还是入口不再可达,或是站点地图中已移除。判定依据不同,后续恢复时的处理也不同。
可以按下面的顺序操作:先冻结最后一次成功检测的快照,再写入删除判定依据和删除时间,最后把状态改为“已删除”。如果之后同一地址重新出现,先比对快照中的证书与跳转链,再决定是当作新页面检测,还是当作历史页面的恢复来处理。这样,删除操作本身不会破坏历史对比的连续性,后续判断也有据可依。