先给结论:不要先删脚本,也不要先放行。更稳妥的动作是把“用途不明”拆成可核对项——脚本来源、加载位置、它能接触的数据、它能发出的请求、谁有权改它——再按“可隔离观察”与“必须立即停用”两种条件分别处理。权限清单不是一次写完的,而是每核对一项就更新下一项。
两种常见做法看似都合理:一是先全部保留,等排名波动再说;二是先全部禁用,再逐个恢复。选择条件取决于脚本是否具备以下特征。
这里的代价不同:隔离观察的代价是继续承担一段时间的未知风险,但保留对照;立即停用的代价是可能误伤正常功能,但把不可控面先收窄。若脚本落在关键路径且能读登录态,优先停用;若只是统计类且来源可追溯,优先隔离观察。
用途不明往往不是“没有用途”,而是“用途没有写在你能看到的地方”。清单按以下维度逐项填写,每项都要求有可验证来源,而不是靠印象打勾。
<head>、<body> 末尾,还是由其他脚本动态注入。实际动作:先只填“来源域”和“加载位置”两列。如果这两列都填不出可验证来源,就不进入后面三维度,直接归入必须立即停用。这个动作的结果会决定下一步——能填出来源的脚本才值得继续核对数据接触面。
假设页面里有一段外部脚本,来源域与主域不同,加载在 <head> 中,没有版本号。按上面的条件,它落在“必须立即停用”一侧,因为来源不可追溯且加载位置靠前。
停用后观察两件事:页面核心功能是否报错;原本由它产生的请求是否消失。如果核心功能正常且请求消失,说明它并非关键依赖,可以进入隔离观察,把来源域和加载位置补全后再决定是否恢复。如果核心功能报错,说明它被其他脚本依赖,此时不能直接恢复原脚本,而应把依赖关系记入清单,改为在隔离环境里测试替代方案。
这个流程的关键不是“停用就安全”,而是停用后必须记录哪个功能受影响、哪个请求消失、下一步由谁核对。缺少这三项记录,停用就只是把未知推后,而不是把未知变小。
清单能覆盖大多数用途不明的脚本,但以下情况不适合继续按清单逐项核对:脚本出现在支付、登录、权限申请等路径;脚本能读取或改写其他脚本;脚本由已离职或已终止合作的外部方提供;同一来源域在多个页面重复出现且无法说明用途。
这些情况下,正确动作是先停用并保留停用前后的请求记录,再走内部审批确认是否有替代方案。清单在这里的作用不是继续打勾,而是把“谁在什么时候停用了什么、影响了什么”固定下来,供后续核对。
无论选择隔离观察还是立即停用,都要注意一个常见误判:请求量归零或页面报错减少,不能单独证明处理正确。请求量下降也可能只是因为页面缓存、访问路径变化或脚本被其他脚本延迟加载;报错减少也可能只是因为错误被吞掉。要结合加载位置、依赖关系和功能验证一起看,才能判断下一步是恢复、替换还是继续停用。