⏱️
securite

Rate Limiting

Mecanisme de controle limitant le nombre de requetes qu'un client peut envoyer dans un temps donne.

Qu'est-ce que le rate limiting ?

Le rate limiting (limitation de debit) est un mecanisme de controle qui restreint le nombre de requetes qu'un client peut envoyer a un serveur dans un intervalle de temps donne. C'est une mesure de protection essentielle pour les API et les applications web, utilisee pour prevenir les abus, proteger contre les attaques par force brute et DDoS, et garantir une qualite de service equitable entre les utilisateurs.

Algorithmes de rate limiting

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

Implementation technique

Le stockage des compteurs utilise generalement Redis (rapide, distribue, operations atomiques avec INCR et EXPIRE). L'implementation 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 (requetes restantes), X-RateLimit-Reset (timestamp de reinitialisation), Retry-After (delai avant de retenter). Le code HTTP 429 Too Many Requests signale le depassement.

Strategies avancees

Rate limiting par couche : limites differentes au niveau IP, par utilisateur authentifie, et par API key. Limites differenciees : plus de requetes 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 dedie.

Rate limiting vs throttling vs DDoS protection

Le rate limiting refuse les requetes excessives (429). Le throttling ralentit les requetes au lieu de les refuser (mise en file d'attente). La protection DDoS opere a un niveau different : filtrage du trafic au niveau reseau/CDN (Cloudflare, AWS Shield) avant qu'il n'atteigne l'application. Les trois sont complementaires : DDoS protection en premiere 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 frequentes

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 liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.