网站规模扩大后,最不适合继续手工做的不是“查杀”本身,而是对全站文件做逐个人工确认。更合理的分工是:把重复性的清点、比对、复扫交给可重复执行的流程,把人工判断留给首次出现的异常、业务代码改动和误报边界。判断标准很直接:这项工作是否每次都要靠人重新看一遍,且结果无法被下一次直接复用。
在线木马查杀在规模小时,手工逐文件打开、肉眼比对、手动删除是可用的,因为文件总量少、变更不频繁。规模扩大后,文件数量、目录层级、发布频率都会上升,手工方式的问题不是慢,而是结果不可复现:这次查过的文件,下次改版后又要重新看一遍,人一多还会出现判断不一致。
可以按两个条件区分:
当一项工作同时满足“重复出现”和“判断标准稳定”时,它就不适合继续手工做;当它涉及业务逻辑、首次出现的可疑模式或客户数据流向时,人工判断仍然必要。
如果站点刚经历过一次真实入侵,或业务代码与模板混在同一批文件中,先保留人工逐文件确认是成立的。条件是:文件总量仍在可人工覆盖的范围内,且你还没有可信的文件基线。
这个选择的具体动作是:先对当前站点做一次完整备份,再按目录分批人工查看最近被修改的文件,记录每个可疑文件的路径、修改时间和判断结论。结果是,你会得到一份可复用的可疑清单。下一步不应继续无限期人工看下去,而应把这份清单转成基线:以后只对比“与基线不一致”的文件,而不是全量重看。
代价也很明确:人工节奏跟不上发布节奏,改版越频繁,漏看的概率越高。因此这个选择适合作为过渡,不适合作为长期状态。
当站点已有稳定发布流程、文件数量持续增长时,更适合把工作改成“基线 + 差异 + 复扫”。前提是你能拿到一份可信的干净版本,例如版本库中的对应提交或已知未受影响的备份。
具体动作可以这样安排:
这个动作的结果是:人工工作量随“变更量”增长,而不是随“站点总量”增长。下一步的检查范围因此可以被控制,规模扩大也不会让每次排查都变成全站重来。
例外情况要单独处理:如果站点存在多个入口、被注入的文件会自我复制,或备份本身已被污染,那么差异结果会失真。这时不能只依赖差异,需要回到可信来源重新建立基线,再恢复差异对比。
不需要等到出事才切换。出现下面任一情况,就说明手工方式已经不合算:
反过来,如果站点文件极少、几乎不更新,手工方式仍然成立,不必为了流程而流程。规模是判断的前提,不是唯一的理由。
假设某站点从 200 个文件增长到 5000 个文件,其中每周正常变更约 80 个。手工全量查看时,每次要面对 5000 个对象;差异方式下,每次只需面对约 80 个变更对象,再加上少量新增文件。这里的关键不是具体数字,而是检查量随总量增长还是随变更量增长。若你的实际情况是变更量也很小,差异方式的优势就不明显;若变更频繁,手工方式会迅速失去可行性。
需要说明的是,这个例子只用于比较两种方式的检查范围,不代表任何真实站点的实测结果,也不构成对处理效果的保证。
流程接管重复清点后,人工不应完全退出。以下环节仍应由人判断:首次出现的可疑模式、涉及支付或登录逻辑的改动、可能被误判为木马的业务代码,以及清理后页面输出是否正常。把这些判断保留下来,才能避免流程给出“干净”结论但业务已经受损。
换句话说,规模扩大后要放弃的是“全量人工查看”,不是“人工判断”。把可重复的部分固定成基线、差异和复扫,把不可重复的部分留给人,才是在线木马查杀在站点变大后仍然可控的做法。