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

12 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 安全告警邮件增加 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 副本,已过时)。