429 + Retry-After: 58攻击流量被服务端挡在登录逻辑外;客户端等到窗口结束再试,正常用户和监控有独立配额。
数据与服务 · 账号与安全
限流按 key 在时间窗口内设请求上限:登录常组合 IP + 账号;超限回 429 + Retry-After,让客户端退避等待而不是猛重试。
同一 IP 加账号的登录请求在 60 秒内最多放行 5 次。亲手填满窗口、第 6 次触发 429,再按 Retry-After 恢复;结果直接长在门禁槽位和响应对象上。
账号防刷 · POST /login
/login · ip=10.0.0.4 · account=aliceIP + 账号:既挡同 IP 撞库,也避免只按 IP 误伤整层办公网。还可放行 5 次
原因:请求写入同一个 key 的窗口计数;下一步:连续发送到第六次,观察它如何被门禁拒绝。
键盘:Tab 定位按钮,Enter 或空格触发。连续发送 6 次;第 6 次看到 429 后,只能等待窗口结束再试,而不是再猛点发送。
限流不是一条“慢一点”的提示,而是一条可计算、可恢复的服务端规则。
把限流放在成本高、可滥用的入口,而不是用它代替鉴权。
以 Redis 固定窗口为起点,先把响应、观察和误伤边界都接上。
route + IP + account 等 key,并用 Redis INCR 计数。EXPIRE;计数超过上限立即返回 429、Retry-After 和可读消息。只改 key 和恢复响应,用户后果就完全不同。
429 + Retry-After: 58攻击流量被服务端挡在登录逻辑外;客户端等到窗口结束再试,正常用户和监控有独立配额。
setInterval(retryLogin, 200)一个热门接口会拖垮所有用户;没有等待指示时,客户端不断重试,把一次超限放大成流量风暴。
登录接口按 IP + 账号限流已返回 429 和 Retry-After: 45;客户端下一步该做什么?
术语的技术定义和行为以这些一手或权威资料为准。
和本知识点经常一起出现的概念。
看看真实的项目蓝图里,限流是怎么被用上的。