Exercices B02
Rate Limiting & DDoS — 10 exercices pratiques
EX1Calcul Fixed Window
Config :
max: 10, windowMs: 60000 (1 min). Un client envoie 10 requêtes à 00:00:59. Combien peut-il envoyer à 00:01:01 ?EX2Calcul Token Bucket
Token bucket : capacité 10 tokens, rechargement 1 token/seconde. Le seau est vide. Combien de requêtes peut-on envoyer après 5 secondes ?
EX3Stratégie — login endpoint
Pour un endpoint
/auth/login, quelle stratégie est la plus adaptée contre le brute force ?EX4Stratégie — API de données
Pour
/api/products (catalogue public), quelle stratégie prévient le scraping sans bloquer les utilisateurs normaux ?EX5Corriger la config
Identifiez le problème de sécurité dans cette configuration :
const limiter = rateLimit({ windowMs: 1000, max: 10000, });
EX6Config trop permissive
Votre endpoint
/auth/password-reset permet d'envoyer des emails. Quelle limite est raisonnable ?EX7Routes différenciées
Classez ces endpoints du plus restrictif au plus permissif en termes de rate limit :
EX8keyGenerator — utilisateur authentifié
Pour un utilisateur connecté (JWT dans le header), quel keyGenerator est le plus approprié ?
EX9Rate limiting derrière un proxy
Votre API est derrière un load balancer Nginx.
req.ip retourne toujours 127.0.0.1. Pourquoi le rate limiting ne fonctionne plus ?EX10Status code — limite atteinte
Quel code HTTP standard doit renvoyer une API quand la limite de rate est atteinte ?