网站规模扩大后,最该从手工转为流程化的不是“发现被黑”这件事本身,而是资产清点、变更核对、日志比对和修复后回归验证。判断标准很简单:当同一项检查需要跨多个站点、多台服务器或多次重复执行,并且结果要拿来决定下一步动作时,手工做就不再可靠。小站被黑修复可以靠一个人翻目录、看时间戳、改文件完成;站点数量、页面量、部署频率上来后,继续手工会同时放大漏检和误判。
规模扩大后常见的情况是,最熟悉网站结构的人反而最不愿意把手工程序化。原因有两个解释。解释一:手工判断更灵活,能发现规则覆盖不到的异常,比如某个目录里多了一个不常见的文件、某段代码只在特定页面出现。解释二:手工流程没有留下可复用的证据链,一旦执行的人休假、离职或同时处理多个站,检查就变成凭记忆抽查。
能区分这两种解释的证据,不是“有没有发现问题”,而是修复前后能否复现同一套检查结果。假设某次被黑后手工清理了三个可疑文件,但没有记录检查了哪些目录、用了什么条件筛选、哪些文件被判定为正常。一周后同一台服务器再次出现异常,就无法判断是清理不彻底、又遭新入侵,还是原本就漏看了另一个入口。反过来,如果每次检查都留下范围、条件和判定结果,即使换了执行人,也能对比出差异在哪。
并不是所有工作都该自动化。以下情况手工仍然合理:
这里的适用条件是:执行人稳定、检查范围固定、结果不需要频繁横向对比。一旦这些条件被打破,手工的代价会从“慢”变成“不可验证”。
规模扩大后,下面几类工作继续手工做,风险会明显上升:
实际动作可以这样落地:先选一个重复度最高的检查项,比如“比对网站根目录与已知正常版本的差异”,把它写成脚本或固定查询,连续执行几次,观察结果是否稳定。如果稳定,就把它纳入被黑修复的固定步骤;如果不稳定,说明判定条件还没想清楚,先别扩大自动化范围。这个动作的结果会直接影响下一步:稳定的检查项可以交给流程执行,不稳定的检查项仍需人工判断,但必须记录判断依据。
两种做法都成立,区别在于条件。
继续手工的条件:站点数量少、部署频率低、执行人固定、修复窗口短、没有跨站复用同一套代码或主机。此时手工更快,因为建立流程本身需要时间。
转向流程的条件:同一检查需要在多个对象上重复执行;结果要用于决定是否扩大修复范围;执行人可能变化;需要向他人说明检查覆盖了什么。此时手工的隐性成本是漏检和无法复盘,而不是单纯的耗时。
一个注明假设的短例子:假设有五个站点共用同一套主题,其中一个站被黑。手工做法是只清理被发现的站,修复完成。流程做法是先确认五个站是否共用同一入口,再对五个站执行同一套差异检查,只人工复核异常项。前者在“只有这一个站受影响”成立时更快;后者在“共用组件可能带来同样入口”成立时更稳。判断依据不是哪个做法更先进,而是共用范围是否已经确认。
修复后如果出现请求量下降、抓取减少或某些页面不再出现,不要直接当成“清理成功”或“处理失败”。这些现象至少有几种合理解释:搜索引擎仍在重新评估页面;被篡改内容消失后,原本因异常内容产生的访问自然回落;部分页面暂时返回错误状态;或者抓取本身只是延后,并非停止。抓取、索引、排名是不同环节,单一指标的变动不能单独证明修复动作正确。
能帮助判断的证据是:修复范围是否有记录、异常文件是否在回归检查中再次出现、页面返回状态是否稳定、同一入口是否被重复利用。把这些证据和指标变化放在一起看,才能决定下一步是继续观察、扩大检查范围,还是回到入口排查。对已有经验的读者来说,规模扩大后被黑修复的关键不是多做几项检查,而是让检查可重复、可对比、可交接;手工适合判断,流程适合覆盖。