Files
tamabox/.workbuddy/memory/2026-09-08.md
T
tamakyi e94c2b57ce 新增:安全告警邮件展示来源 IP 网络归属(CDN/云厂商/WAF)
- 新增 internal/security/ipinfo:基于 projectdiscovery/cdncheck v1.3.0
  (离线指纹、零外部请求)识别来源 IP 归属,识别失败折叠为展示标签,
  不中断告警链路
- autoban 告警回调注入归属识别;告警邮件新增「网络归属」行,
  命中 CDN/代理网络时提示「封禁可能无法拦截真实来源」
- 新增邮件模板渲染回归测试 internal/mail/mail_alert_test.go
- dev/s3stub:webp(cgo) 本地类型检查桩,替换 s3.go 做全模块编译验证,
  生产 Linux 构建不受影响;dev/overlay.json 指向该桩
- go mod tidy 顺带升级共享依赖(lipgloss/xid/testify 等),
  全模块类型检查与相关包测试通过
2026-09-08 13:25:20 +08:00

1.5 KiB
Raw Blame History

安全告警邮件增加 IP 网络归属(2026-09-08)

  • 需求:autoban 批量扫描告警邮件中展示来源 IP 的云厂商/CDN 归属(用户提到"类似 cloudranger"),选定方案 A:projectdiscovery/cdncheck v1.3.0(MIT,离线签名,零外部请求)。
  • 新增 internal/security/ipinfo:Lookup(ip) (label, proxied),依次查 CDN→WAF→Cloud,错误折叠为"识别失败"标签,不中断告警链路;缩写映射 aws→AWS 等。
  • mail.SendSecurityAlertMail 增加 provider/proxied 参数;route.go SendAlert 闭包注入 lookup;模板加「网络归属」行 + 命中代理网络时的红色提示块。
  • 验证:全模块类型检查 + 相关包测试通过(s3.go 磁盘换桩法);smoke 实测 1.1.1.1→Cloudflare(WAF)、52.95.255.1→AWS(云厂商)。
  • 新增回归测试:internal/mail/mail_alert_test.go(模板渲染含 proxy_hint 条件分支)。
  • 教训(重要):本机 Windows + go1.25.5 下 -overlay 行为异常(静默不生效 / "deleted in overlay"),overlay 不可靠;本地验证用磁盘换桩法:cp dev/s3stub/s3_stub.go internal/storage/s3.go(先备份)→ build/test → 还原。chai2010/webp 是 cgo 库,用户生产编译在 Linux,无需本地真编译。
  • go mod tidy 顺带升级了部分共享依赖(lipgloss 0.13、xid 1.5、testify 1.11 等),全量构建+测试通过。
  • dev/overlay.json 现指向 dev/s3stub/s3_stub.go(旧值指向已删除的 Downloads 副本,已过时)。