fix(honeypot): 清洗反代链路的脏路径,回环来源 IP 打配置告警
测试环境实测(Cloudflare → nginx → 源站)发现两处: 1. 凭据文件里记录的 path 是 " /wp-login.php"(前导空格); 2. 来源 IP 记成 127.0.0.1。 path:Match 内部会 TrimSpace 所以仍能命中,但落库与假表单 action 用的是原始 req.URL.Path —— 取证数据带脏字符,爆破脚本还可能把表单提交到错误路径。 新增 cleanPath(trim + 补前导斜杠,不改大小写) 在 Serve 入口清洗一次。 IP:记录到回环地址说明站点在反代后面但 [security] trust_proxy 未开启。 此时所有访客在源站眼里是同一个 IP:取证数据失去意义,且一次蜜罐封禁会 连带封掉整站(含普通访客)。新增一次性 WARN(24h 冷却),只提示不改行为 —— 本地直连调试时回环 IP 属正常。sample.ini 的 trust_proxy 段补对应说明。 测试:TestCleanPath / TestIsLoopbackIP 覆盖前导空格、制表符、空串、 无前导斜杠、大小写保持,以及 shared.LimitKey 折叠后的 "::/64" 形式。
This commit is contained in:
@@ -55,6 +55,9 @@ trust_proxy = false
|
||||
; 否则保持 false,防止客户端伪造 header 绕过速率限制与 IP 黑名单。
|
||||
; ⚠️ 若站点在 Cloudflare 后且需使用下面的自动封禁,必须设为 true,
|
||||
; 否则解析到的将是 Cloudflare 边缘 IP,自动封禁会误伤所有访客。
|
||||
; ⚠️ 蜜罐取证同理:trust_proxy = false 时所有请求的来源都被记成反代地址
|
||||
; (常见 127.0.0.1),取证数据失去意义;而且一次蜜罐封禁会连带封掉整站。
|
||||
; 蜜罐命中回环地址时启动日志会打一次告警提醒检查这里。
|
||||
; ⚠️ 开启 trust_proxy 时,必须配合「Cloudflare Tunnel / Authenticated Origin Pull /
|
||||
; 防火墙仅放行 Cloudflare / EdgeOne 回源网段」锁定源站,否则攻击者可直连源站并伪造
|
||||
; CF-Connecting-IP / EO-Client-IP 头。无需维护 CDN 庞大 CIDR 清单。
|
||||
|
||||
Reference in New Issue
Block a user