Retour à la leçon
Mission

Mission : le rate limiting qui laisse tout passer en production

Corriger un middleware de rate limiting en mémoire locale devenu inefficace multi-instances, et fixer un ordre de middlewares incorrect.

Contexte

RateLimitMiddleware de app/main.py stocke ses compteurs dans un simple dict Python et fonctionnait parfaitement en développement. Depuis le déploiement sur trois workers Gunicorn, un attaquant peut envoyer trois fois plus de requêtes que la limite annoncée sans jamais être bloqué. Par ailleurs, l'ordre d'ajout des middlewares (RateLimitMiddleware puis GZipMiddleware) ne produit pas l'ordre d'exécution attendu par l'équipe.