先给结论:百分比本身只能说明“结构”,不能说明“规模”。当报告里只有“某类可疑文件占 12%”这类数字,而没有总文件数、扫描范围、命中样本数时,你无法判断这 12% 是 3 个还是 3000 个。补齐判断依据的核心动作,是回到检测工具的原始日志或导出文件,找到分母和命中清单,再用同一时间窗口重扫一次做对照。分母缺失时,任何“保留、改写还是退出”的决策都缺少支撑。
挂马检测工具报出的百分比,通常来自三个不同层级:全站文件总数、可解析脚本文件数、或本次实际读取成功的文件数。三者差异很大。如果扫描时大量文件因权限、超时或编码被跳过,百分比的分母其实只是“成功读取的那部分”,此时比例偏高不代表全站风险高,只代表这批可读文件里可疑项集中。
补齐动作:在工具的扫描摘要或日志里找“已扫描”“跳过”“读取失败”三个计数。若日志只给百分比,尝试导出 CSV 或 JSON 明细。拿到明细后,用命中条目数除以明细总行数,复算百分比,看是否与报告一致。若复算结果对不上,说明报告用了加权或去重口径,需要向工具方确认,而不是直接采信。
同样 12%,命中项全是同一段被注入的 <script> 特征,和命中项分散在几十个不同文件、不同目录,处理方式完全不同。前者可能是单点入口被批量写入,后者更像多入口或长期潜伏。百分比无法区分这两种情况。
可操作的判断依据:
如果时间戳集中、目录集中、代码特征一致,保留现有站点结构、只做定点清理和入口封堵是成立的。如果时间戳分散、目录跨多个权限层、代码特征各异,说明清理后复发概率高,此时应考虑改写入口逻辑或临时下线受影响目录,而不是反复删除文件。
单次百分比没有参照系。补齐依据的第二个动作,是在不修改任何文件的前提下,用同一工具、同一扫描范围、同一时间窗口再扫一次。若两次百分比接近、命中清单也基本重合,说明这是当前状态的稳定读数,可以作为决策基线。若两次差异明显,说明扫描本身受缓存、并发或超时影响,百分比不具备决策价值。
这里要说明一个常见误判:重扫后百分比下降,不一定代表风险降低。可能是文件被跳过、读取失败,或工具缓存了上次结果。因此重扫时必须同时记录“已扫描数”和“跳过数”。只有这两个数稳定,百分比的变化才值得解读。
三种决策对应不同的前提,不需要全部走一遍:
假设一个例子:某站点报告“可疑文件占 8%”,但导出明细只有 4 条命中,全部位于上传目录,时间戳集中在同一天,且存在清理前的备份。这种情况下 8% 的分母很小,实际风险范围有限,保留并定点清理是合理选择。反之,若明细显示命中 200 条、分布在 6 个目录、时间戳跨 3 个月,即使百分比更低,也应优先考虑退出当前环境。
下次拿到只有百分比的报告时,按这个顺序补齐:先要明细导出,再要扫描摘要中的已扫描与跳过计数,然后复算百分比,最后做一次不改文件的同窗口重扫。四步走完,你手里就有了分母、命中清单、稳定性和时间分布四项依据,足以支撑保留、改写或退出的取舍,而不是被一个孤立的百分比牵着走。