qing
|
9fc3542771
|
smtp: CLI 标准化补完(--host/--log-level/--instance + log_client 级别过滤)
- argparse 新增 --host(别名 --addr)、--log-level、--instance
- --log-level 经 logs.set_log_level() 真正订阅日志过滤
- log_client.py: 新增 _LOG_LEVELS/set_log_level()/_normalize_level() + push() 级别过滤
- 启动日志打印 instance/log-level 及配置来源说明
- services.yaml: smtp 声明 --instance 和 --log-level
- 注: SMTP 账号走 .env/ENV(密码不进 CLI),与全项目约定一致
|
2026-08-10 12:05:46 +08:00 |
|
qing
|
49f0698b9d
|
fix(gateway,smtp): 修复邮件轰炸漏洞(审计 P0-1)
gateway v0.5.3 → v0.5.4:
1. gateway/src/main.cpp
- /register/send_code 强制 CAPTCHA 校验(经 captcha:8009,Token 一次性消费,fail-closed)
- 新增邮箱级双窗口限流(3 次/小时 + 10 次/天,CAPTCHA 通过后才计入配额)
- 新增 _EMAIL_ADDR_RATE_HOUR / _EMAIL_ADDR_RATE_DAY 限流器实例
2. smtp/smtp_v2.py
- 新增邮箱级长期限流兜底(EMAIL_HOURLY_LIMIT / EMAIL_DAILY_LIMIT,默认 3/10)
- 新增全局熔断(SMTP_HOURLY_LIMIT,默认 100 封/小时,防 smtp 账号被封)
- 预占/回滚与 60s 冷却同模式,发送失败不计入配额
3. gateway/docs/SECURITY_AUDIT_20260801.md
- 新增带日期的安全审计报告
- P0-1 标记为已修复 v0.5.4
4. gateway/README.md
- 更新 /register/send_code 接口文档(CAPTCHA 必填 + 5 层防护)
- 更新版本变更日志
防护层次:IP 限流 → CAPTCHA → 邮箱级限流(gateway)→ 60s 冷却 → 邮箱级限流(smtp)→ 全局熔断
|
2026-08-01 02:37:15 +08:00 |
|
qing
|
3f97dd92ef
|
update
|
2026-07-30 21:57:04 +08:00 |
|
qing
|
32d3a5a19f
|
重构db
|
2026-07-30 20:15:02 +08:00 |
|
qing
|
5275b8bf75
|
feat(smtp): 邮箱验证码连续校验失败 5 次自动作废,防枚举 6 位数字码
|
2026-07-29 21:57:16 +08:00 |
|
qing
|
c5dd8d198d
|
feat(smtp): 同一邮箱 60 秒发送冷却,gateway 429 透传 + 前端重发倒计时(gateway v0.5.3)
|
2026-07-29 20:54:56 +08:00 |
|
qing
|
f4a7aca2fa
|
update: smtp 验证码有效期 60s 调整为 10 分钟,邮件正文从 CODE_TTL 派生
60 秒对邮件送达延迟过于紧张;正文有效期文案改为按 TTL 自动生成避免漂移,前端提示与 README 同步。同时移除 .env 排查用的凭证明文调试打印。
|
2026-07-29 19:32:44 +08:00 |
|
qing
|
f5b69d0b4c
|
fix: smtp .env 解析兼容 KEY: VALUE 冒号格式,MAIL_FROM 默认跟随 SMTP_USER
服务器 .env 误用 YAML 冒号格式导致凭证全部加载为空;163 等服务商强制 From 头与登录账号一致,写死的 MAIL_FROM 会触发 553,现默认取 SMTP_USER、可用 .env 显式覆盖。
|
2026-07-29 19:08:13 +08:00 |
|
qing
|
53c742c26e
|
refactor: smtp.py.remote 更名为 smtp_v2.py,恢复 .py 后缀以便工具链识别
_run.sh 同步指向新文件名;start() 新增启动时凭证明文打印(仅 stdout 不落日志库),用于排查 .env 加载问题,调试完成后需移除。
|
2026-07-29 18:36:21 +08:00 |
|