qr-login-token.sh

20260916-201504 轮 · 看它的历史
靶子: http://localhost:20098  容器: wt_h8_tp8

── A 匿名触发限流 → token 必须被【作废】而不是被【重签】──
  ✓ 前置:token 已清空
  ✓ A1 第 22 次失配被限流拦下(响应含频繁提示)
  ✓ A2 🔴 限流后 userQR 缓存为空(是作废,不是换发)
e2e-qr-login-token.sh: line 77: md5: command not found
e2e-qr-login-token.sh: line 77: md5: command not found
e2e-qr-login-token.sh: line 77: md5: command not found
e2e-qr-login-token.sh: line 77: md5: command not found
e2e-qr-login-token.sh: line 77: md5: command not found
  ✓ A3 🔴 用 md5(秒) 猜出的 token 一个都登不进去

── B 正路:本人取码 → 扫码登录 → 一次性作废 ──
  ✓ B1 前置:e2e_bot 登录成功
  ✓ B2 🔴 新签发的 token 是 32 位十六进制(密码学随机)
  ✓ B3 🔴 两次签发不相同(不是常量/可预测种子)
  ✓ B4 本人 token 扫码登录成功(302)
  ✓ B4 └ 跳转目标 = /User/uploads_app
  ✓ B4 └ 登录态确实落在 990863 上
  ✓ B5 同一 token 二次使用:不再 302
  ✓ B5 └ 且未拿到 990863 登录态

── C token 寿命:TTL=300s,且复用时续期(不换 token) ──
  ✓ C0 前置:重新登录 e2e_bot(B4 的扫码登录已踢掉上一个 web 会话)
  ✓ C 前置:拿到 token 且定位到它的缓存文件
  ✓ C1 记录老到 299 秒时 token 仍在(TTL ≥ 300)
  ✓ C2 🔴 记录老到 301 秒时 token 已消失(TTL ≤ 300 ⇒ 恰为 300,不再是 6h)
  ✓ C3 复用分支不换 token(正在被扫的那张码不会当场作废)
  ✓ C4 🔴 复用分支把寿命续上了(mtime 前移 ≥250s;不续期的话这里恒为 0)

──────────────────────────────
PASS=18 FAIL=0
✅ 全绿