mailcode-throttle
靶子 http://localhost:20098(副本 h8,容器 wt_h8_tp8)
=== B1 · 发码成功,且冷却键与验证码键是两个独立文件 ===
PASS 发码成功
PASS 验证码缓存存在
PASS 独立冷却键存在(mailcode_send_1_e9def9cd…)
PASS 两者不是同一个文件
=== B2 · 冷却在正常路径下生效 ===
PASS 紧接着再发 → 被拒
=== B3 · 5 次错码触发 _mailCodeVerify 的作废分支(删验证码缓存) ===
PASS 第 5 次 → 返回「验证码已作废」
PASS 验证码缓存已被删除(B4 的前提成立)
=== B4 · 🔴 核心:验证码缓存被删之后,冷却仍然生效 ===
PASS 冷却键未被 B3 的删除波及
PASS 立刻重发 → 仍被拒
PASS 没有产生新的验证码缓存
=== B5 · 🔴 守卫:冷却过期后必须能正常发出(防写成恒拒) ===
PASS 清掉冷却键后再发 → 成功
=== B6 · 🔴 按 uid 的日限:换地址绕不过去 ===
PASS 换 12 个地址连发 → 有被拒的(成功 8 / 被拒 4)
PASS 成功次数不超过日限 10
PASS 被拒文案是「今日获取验证码次数已达上限」
=== B7 · 🔴 守卫:日限重置后必须能正常发出(防写成恒拒) ===
PASS 日限计数键存在
PASS 日限计数键 TTL == 86400(会自然过期)
PASS 清掉日限键后再发 → 成功
PASS 17 FAIL 0