mailcode-throttle

20260916-201504 轮 · 看它的历史
靶子 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