Rate limiting
Statut
Document de cadrage backend — version initiale.
Objectif
Le rate limiting protège l'API contre les abus, erreurs clientes, attaques simples et pics de trafic non maîtrisés.
Il doit être appliqué au bon niveau : Nginx, Laravel ou service métier selon le cas.
État actuel visible
La configuration deployment/nginx.conf définit :
| Zone | Taux visible | Usage |
|---|---|---|
api_global | 60 req/min par IP | Routes API générales. |
api_auth | 10 req/min par IP | Routes d'authentification. |
api_webhook | 30 req/min par IP | Webhook Stripe. |
Nginx applique aussi des bursts et renvoie 429 en cas de limite.
Rate limiting applicatif cible
Laravel peut compléter Nginx pour des limites métier :
- par utilisateur ;
- par acteur ;
- par commune ;
- par type d'action ;
- par quota premium ;
- par consommation IA ;
- par endpoint sensible.
Ces limites applicatives ne sont pas confirmées comme généralisées dans le code actuel.
Cas sensibles
- authentification ;
- revendication d'acteur ;
- signalements ;
- publication ;
- notifications ;
- génération IA ;
- webhooks ;
- uploads médias ;
- recherche conversationnelle.
Principes
- Bloquer tôt les abus simples côté Nginx.
- Appliquer les quotas métier côté Laravel.
- Retourner des erreurs claires.
- Ne pas bloquer les webhooks légitimes trop agressivement.
- Journaliser les dépassements significatifs.
Points à clarifier
- Rate limits Laravel par endpoint.
- Limites par utilisateur vs IP.
- Limites spécifiques IA et notifications.
- Comportement sur Cloudflare si utilisé.
- Monitoring des 429.