Files
wiki/concepts/rate-limiting.md
T
2026-06-09 18:40:21 +02:00

54 lines
1.8 KiB
Markdown

---
title: Rate Limiting
created: 2026-06-06
updated: 2026-06-06
type: concept
tags: [tech, security, architecture]
confidence: high
contested: false
sources: [synthesized]
---
# ⏱️ Rate Limiting
## Définition Courte
Mécanisme qui **limite le nombre de requêtes** qu'un client peut faire sur une période donnée, pour protéger un service contre les abus et les surcharges.
## Explication Détaillée
**Algorithmes courants** :
- **Fixed Window** : compteur par fenêtre de temps (ex: 100 req/minute). Simple, mais burst aux limites.
- **Sliding Window** : fenêtre glissante, plus précis.
- **Token Bucket** : réservoir de tokens, refillé à rythme constant. Gère bien les bursts.
- **Leaky Bucket** : débit de sortie constant, lisse les pics.
**Niveaux d'application** :
- **L4 (TCP/UDP)** : limite de connexions par IP.
- **L7 (HTTP)** : limite de requêtes par route, utilisateur, ou IP.
- **API métier** : ex: 5 publications par heure par user.
Headers HTTP standards : `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`, `Retry-After`.
## Cas d'Usage
- Protection contre les attaques par force brute (login).
- Empêcher le scraping massif d'une API publique.
- Protéger un backend LLM coûteux (limite de tokens/minute).
- Éviter qu'un client monopolise un service partagé.
## Outils Liés
- **Redis** (Token Bucket rapide).
- **NGINX** (`limit_req`, `limit_conn`).
- **Traefik** (plugins rate-limit).
- **Cloudflare** (rate limiting global).
## Pages Liées
- [[api-gateway]]
- [[concepts-web]]
- [[checklist-mise-en-production]]
- [[securisation-home-lab]]
## Questions Ouvertes
- Comment différencier un bon client rapide d'un attaquant ?
- Le rate limiting au niveau réseau (L4) est-il encore utile à l'ère du HTTPS everywhere ?
## Liens
- [[load-shedding]]