访问日志里某个接口被持续高频提交,内容明显是构造的。乍看像缓存或者权限的锅,追下去往往不是。
grep 'POST /submit' access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head
追下去是这么回事:攻击者在尝试利用表单漏洞或探测参数,行为特征高度重复。
「异常请求处置」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。
具体做法是,先封禁来源网段;给接口加人机校验;检查该接口的入库逻辑是否被利用。
验收就看一点,异常请求被拦截,接口日志恢复常态。