一、问题现象登录接口狂点时触发的是“请求过于频繁请X秒后重试”CC防护而不是“IP被封禁请180秒后重试”防撞库。二、原因分析CC防护在 app.before_request 中执行早于登录接口的防撞库检查。请求被CC拦截后根本没进入登录接口防撞库永远没有机会记录失败次数。pythonapp.before_requestdef limit_all_requests():# CC防护在这里执行登录请求被提前拦截if not allowed:return 请求过于频繁 # ← 防撞库没机会执行三、核心问题防护机制 执行顺序 问题CC防护 1最先 拦截后防撞库无法记录防撞库 2登录接口内 永远等不到执行四、解决方案1. 将登录接口排除在CC防护之外2. CC防护冷却时间改为固定值避免泄露剩余秒数3. 防撞库锁期间不再重复累加计数pythonapp.before_requestdef limit_all_requests():# 登录接口不限制交给防撞库处理if request.path /api/login:return# 其他接口正常CC防护...def record_failed_login(ip):# 锁期间不再累加if FAILED_LOGINS[ip][lock_until] now:returnFAILED_LOGINS[ip][count] 1if FAILED_LOGINS[ip][count] 3:FAILED_LOGINS[ip][lock_until] now 180五、修复后效果场景 结果正常用户 无影响连续3次错误密码 触发防撞库锁180秒锁期间继续尝试 直接返回“IP被封禁”锁期间不消耗CPU 仅做时间比较六、经验总结多层防护时注意执行顺序。CC防护应放行登录接口让防撞库独立管理登录尝试频率避免防护机制互相干扰。