先看扫描器有没有留下可续跑的中间产物:如果它把已抓取 URL、状态码、发现时间写进了本地数据库、日志文件或可导出清单,那么这次中断就只是“暂停”,你可以据此判断覆盖范围并决定是否续跑;如果它只把结果留在内存或临时会话里,中断即丢失,这时更实际的做法是换一种可分段执行的方式重来,而不是猜测覆盖了多少。
中断后最容易误判的地方,是把扫描器发现的链接数量当成已覆盖范围。发现只说明工具在某一页上看到了指向其他页面的链接,不代表它已经请求过那些页面,也不代表那些页面返回了可用的状态码。
判断覆盖范围时,至少要把三类记录分开:
第三类是关键。任何基于中断前记录的覆盖判断,都只能覆盖前两类,不能证明“未发现”的页面不存在或没问题。所以先确认工具是否保留了队列快照,再谈覆盖比例。
如果扫描器支持断点续跑或分段抓取,判断重点不是“跑了多久”,而是它记了什么。可以按下面三个信号检查:
三个信号都具备,续跑是合理选择,代价通常低于重新全站扫描。只具备第一个,续跑能省时间,但覆盖判断仍然粗糙,适合先接受“大致覆盖”再人工抽查。三个都不具备,续跑意义有限,建议改为按目录或按站点地图分批扫描。
很多在线扫描工具在会话中断后不保留可续跑的明细,这时继续纠结“覆盖了百分之多少”往往没有结果。更可行的动作是改变扫描粒度和记录方式:
这个动作的结果会直接影响下一步:如果分片后每批都能在中断风险内跑完,你得到的是可核对的覆盖清单;如果单批仍然超时,说明瓶颈在请求速度或页面响应,而不是扫描范围,此时应先降低并发或延长超时,再谈覆盖。
假设一次全站扫描在中断前记录了 800 个已请求 URL,队列里还剩 200 个已发现未请求的地址,站点地图显示全站约 1500 个地址。这里的覆盖判断是:已请求加已发现共 1000 个,仍有约 500 个地址既没被请求也没被发现。
这 500 个不能靠现有记录推断状态。合理的下一步不是直接宣布“覆盖了三分之二”,而是先检查这 500 个是否集中在某个目录或某个模板下。如果集中,说明中断可能发生在遍历某个区域的阶段,优先补扫该区域;如果分散,说明发现机制本身可能受限,需要改用站点地图作为扫描入口。
三种取舍对应不同前提:
具体某个工具是否提供断点续跑、导出字段有哪些、免费额度如何限制,需要以你当前使用的版本和实际界面为准,不要仅凭类别印象判断。选定取舍后,先把“已请求、已发现未请求、未发现”三类数量写下来,再决定下一步是补扫、分片还是更换工具,这样覆盖范围才有依据。