新增:安全告警邮件展示来源 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 等),
  全模块类型检查与相关包测试通过
This commit is contained in:
tamakyi
2026-09-08 13:25:20 +08:00
parent 35a846ea40
commit e94c2b57ce
12 changed files with 350 additions and 342 deletions
+4
View File
@@ -31,7 +31,11 @@
<div style="font-family: Roboto-Regular,Helvetica,Arial,sans-serif; font-size: 14px; color: rgba(0,0,0,0.87); line-height: 22px; padding-top: 20px; text-align: left;">
<div style="padding: 12px 14px; border-radius: 6px; background-color: #fdecea; border: 1px solid #f5c6cb; margin-bottom: 14px;">
<div><b>来源 IP:</b>{{.ip}}</div>
<div style="margin-top: 4px;"><b>网络归属:</b>{{.provider}}</div>
<div style="margin-top: 4px;"><b>处置:</b>已自动临时封禁 <b>{{.duration}}</b> 分钟,到期自动解除</div>
{{if .proxy_hint}}
<div style="margin-top: 8px; font-size: 13px; color: #b71c1c;">⚠️ 该 IP 属于 CDN / 代理网络,攻击者可随时更换出口 IP,本次封禁可能无法拦截真实来源。</div>
{{end}}
</div>
<div style="font-size: 13px; color: rgba(0,0,0,0.54);">命中路径样本:</div>
<div style="font-family: monospace; font-size: 12px; color: #333; background-color: #f7f7f7; padding: 10px 12px; border-radius: 6px; margin-top: 6px; word-break: break-all;">