Aller au contenu principal

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 :

ZoneTaux visibleUsage
api_global60 req/min par IPRoutes API générales.
api_auth10 req/min par IPRoutes d'authentification.
api_webhook30 req/min par IPWebhook 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.