不能直接横向比较。上线时间不同的页面,在抓取覆盖、外链积累、用户行为样本和缓存状态上处于不同阶段,把它们的风险评分或异常计数放在一张表里排序,很容易把“新页面还没被充分观察”误判成“新页面更危险”。只有当两组页面的观测窗口、抓取状态和样本量都对齐后,比较才成立。
在线安全检测里常见的横向比较有两类,处理方式完全不同。
判断依据不是“哪个分数更高”,而是先看每个页面的首次发现时间、最近一次成功抓取时间、以及检测任务实际覆盖的URL数量。如果这三个字段在两组页面上分布明显不同,就不该直接排序。
当你把新老页面都放进同一段固定窗口(例如统一取最近一次完整扫描周期),并且确认每个页面都被成功抓取过至少一次,那么可以比较的是结构性事实,而不是趋势性指标。
可比较的内容包括:
这些是页面当前状态的快照,与页面活了多久无关。实施动作:在检测任务里固定一个抓取时间点,导出每个页面的状态快照,只比较快照字段,不比较累计异常次数。
这个动作会直接影响下一步:如果快照字段一致,说明差异来自模板或组件版本,应回到代码层排查;如果快照字段不一致,才需要按页面类型分别制定修复优先级。
如果新页面刚上线几天,老页面已经运行数月,直接比较会得出误导结论。此时应先把两组页面拉到同一观测条件下,再决定是否比较。
具体做法:
假设某次检测中,新页面7天内出现2次外部脚本告警,老页面在同样7天窗口内出现1次。这个差异不足以说明新页面更危险,因为新页面可能刚接入一个新的第三方统计代码,而老页面早已移除。你需要看的是告警对应的具体资源地址,而不是次数。
例外情况:如果某个页面在公共窗口内完全没有被抓取记录,它既不能证明安全,也不能证明危险。此时应把它标记为“观测不足”,而不是归入任何一组结论。
第三方估算流量、搜索引擎报告和站内统计的口径不同,不能互相替代,也不能单独用来还原页面的安全状态。一个页面的访问量下降,可能是上线时间短、内容未被收录、抓取预算被其他页面占用,或者确实存在拦截,这些解释需要分别验证。
可操作的证据链是:
把这三项按页面列出,再决定是否横向比较。如果变更记录显示新页面在窗口内改过脚本,那么它的告警变化应归因于变更,而不是页面年龄。
当两组页面的上线时间差距超过检测任务的完整覆盖周期,且无法截取公共窗口时,横向比较没有意义。此时更合理的做法是按页面各自的历史基线做纵向比较:看它相对自己上一次检测是变好还是变差。
纵向比较的前提是同一页面、同一检测口径、连续多个周期。它回答的是“这个页面有没有退化”,而不是“新页面和老页面谁更安全”。只有当你需要决定修复资源投向哪一组页面时,才回到横向比较,并且必须先完成观测窗口对齐这一步。