蜜罐告警: 修复去重口径与空收件人短路

审阅蜜罐邮件提醒功能发现的问题,三项一并修:

1. autoban.alerted 从 map[string]bool(永不过期)改为带时间戳的
   map[string]time.Time,冷却期 24h 与蜜罐侧对齐。cleanup 里清理过期项,
   长期盯防同一来源不再漏掉后续攻击活动(此前一生只报一次)。
2. 蜜罐告警在 security_alert_email 为空时短路:route.go 注入 sendAlert
   前判空,收件人缺失置 nil,避免每次凭据提交白做 SMTP 拨号 + 刷 Warn。
3. 强化 security_alert_email 的配置警示(蜜罐邮件含明文密码,
   必须是个人邮箱、禁群组/分发列表)。
This commit is contained in:
tamakyi
2026-10-30 17:17:25 +08:00
parent 48eea98a27
commit 036156b6fb
5 changed files with 91 additions and 11 deletions
+6
View File
@@ -140,6 +140,12 @@ var (
BanImagePath string `ini:"ban_image_path"`
SecurityAlertEmail string `ini:"security_alert_email"` // 触发封禁时告警收件人(留空不发送)
// ⚠️ security_alert_email 也是蜜罐告警邮件的收件人,而蜜罐邮件正文
// **含明文账号密码**(这是功能核心价值:运维立刻拿到攻击者正在用的字典)。
// 因此这里必须是**个人邮箱**,禁止填群组邮箱 / 分发列表 / 团队共用邮箱——
// 否则等于把攻击者的破解字典广播给无关人员,且经 SMTP 中转后明文密码
// 会留在第三方邮件系统的日志/归档里,超出本地 0600 取证文件的控制范围。
// CSP 内容安全策略的生效模式:enforce / report / off,缺省 enforce。
//
// enforce 下发 Content-Security-Policy(真正拦截);report 只下发 Report-Only