⏱️
securite

Rate Limiting

Mécanisme de contrôle limitant le nombre de requêtes qu'un client peut envoyer dans un temps donne.

Qu'est-ce que le rate limiting ?

Le rate limiting (limitation de debit) est un mécanisme de contrôle qui restreint le nombre de requêtes qu'un client peut envoyer à un serveur dans un intervalle de temps donne. C'est une mesure de protection essentielle pour les API et les applications web, utilisee pour prévenir les abus, protéger contre les attaques par force brute et DDoS, et garantir une qualité de service equitable entre les utilisateurs.

Algorithmes de rate limiting

Fixed Window : un compteur par fenetre de temps fixe (ex: 100 requêtes par minute). Simple mais permet des bursts aux frontieres de fenetre (200 requêtes en 2 secondes a cheval sur deux fenetres). Sliding Window : combine les compteurs de la fenetre actuelle et précédente avec une ponderation. Plus précis que le fixed window. Token Bucket : un seau se remplit de tokens à un rythme constant. Chaque requête consomme un token. Autorise les bursts (seau plein) tout en limitant le debit moyen. Leaky Bucket : les requêtes entrent dans un seau qui fuit a debit constant. Lisse le trafic, pas de burst.

Implémentation technique

Le stockage des compteurs utilise généralement Redis (rapide, distribue, opérations atomiques avec INCR et EXPIRE). L'implémentation se fait dans un middleware (Express, Flask, ASP.NET) ou au niveau du reverse proxy (Nginx limit_req, Traefik). Les headers HTTP standards communiquent les limites : X-RateLimit-Limit (quota total), X-RateLimit-Remaining (requêtes restantes), X-RateLimit-Reset (timestamp de reinitialisation), Retry-After (délai avant de retenter). Le code HTTP 429 Too Many Requests signale le depassement.

Stratégies avancees

Rate limiting par couche : limites différentes au niveau IP, par utilisateur authentifie, et par API key. Limites differenciees : plus de requêtes pour les comptes premium que pour les comptes gratuits. Rate limiting adaptatif : ajuster les limites en fonction de la charge du serveur. Distributed rate limiting : synchroniser les compteurs entre plusieurs instances de l'application via Redis ou un service dédié.

Rate limiting vs throttling vs DDoS protection

Le rate limiting refuse les requêtes excessives (429). Le throttling ralentit les requêtes au lieu de les refuser (mise en file d'attente). La protection DDoS opère à un niveau différent : filtrage du trafic au niveau réseau/CDN (Cloudflare, AWS Shield) avant qu'il n'atteigne l'application. Les trois sont complémentaires : DDoS protection en première ligne, rate limiting au niveau applicatif, throttling pour les degradations gracieuses.

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions fréquentes

Quelles limites de rate appliquer par defaut ?
Cela depend du type d'endpoint. Endpoints publics : 60-100 requetes/minute par IP. API authentifiee : 1000-5000 requetes/heure par utilisateur. Endpoints sensibles (login, mot de passe oublie) : 5-10 tentatives par minute par IP. Adaptez selon votre cas : un endpoint de recherche autocomplete sera plus genereux qu'un endpoint de paiement.
Le rate limiting suffit-il contre les attaques DDoS ?
Non. Le rate limiting applicatif protege contre les abus normaux mais est debrode par une attaque DDoS volumetrique (des millions de requetes de milliers d'IP). Pour les DDoS, utilisez une protection au niveau reseau : CDN (Cloudflare, AWS CloudFront), WAF, et services specialises (AWS Shield, Cloudflare DDoS Protection). Le rate limiting est la derniere ligne de defense, pas la premiere.

Pages liées

Chaque semaine, le meilleur de la tech française

Tendances, salaires, outils et opportunités — directement dans votre boîte mail.

Gratuit. Desabonnement en un clic. Pas de spam.