12 oct. 2025·8 min de lecture

Limitation de débit pour APIs publiques : quotas pratiques et flux de verrouillage

Limiter le dĂ©bit des APIs publiques pour arrĂȘter les abus sans bloquer les vrais utilisateurs : limites pratiques, quotas par clĂ©, flux de verrouillage et conseils de dĂ©ploiement.

Limitation de débit pour APIs publiques : quotas pratiques et flux de verrouillage

Quel problÚme la limitation de taux résout vraiment

La limitation de taux pour les APIs publiques ne sert pas à punir les utilisateurs. C'est une soupape de sécurité qui maintient votre service disponible quand le trafic devient étrange, que cette « étrangeté » soit malveillante ou simplement liée à un bug client.

L’« abus » ressemble souvent Ă  du trafic normal au dĂ©part : un scraper qui parcourt chaque endpoint pour copier des donnĂ©es, des tentatives de brute-force sur des connexions, du stuffing de tokens contre des routes d'auth, ou un client dĂ©faillant qui relance la mĂȘme requĂȘte en boucle aprĂšs un timeout. Parfois, personne ne vous attaque vraiment : une mise Ă  jour d'application mobile embarque une mauvaise rĂšgle de cache et soudain chaque appareil interroge votre API chaque seconde.

Le but est simple : protéger la disponibilité et maßtriser les coûts sans bloquer les vrais utilisateurs qui font un travail normal. Si votre backend est facturé (compute, base de données, envoi d'e-mails/SMS, appels AI), un acteur bruyant peut rapidement faire grimper la facture.

La limitation seule ne suffit pas non plus. Sans supervision et réponses d'erreur claires, vous obtenez des échecs silencieux, des clients confus et des tickets support qui ressemblent à « votre API est en panne » alors qu'elle fait simplement du throttling.

Une protection complÚte comporte généralement plusieurs éléments distincts :

  • Limites de dĂ©bit (rate limits) : plafonds sur de courtes fenĂȘtres (par seconde/minute) qui stoppent les pics.
  • Quotas : allocations sur des fenĂȘtres plus longues (par jour/mois) qui rendent l'usage prĂ©visible.
  • Verrouillages (lockouts) : blocages temporaires pour des schĂ©mas manifestement abusifs.
  • Exceptions : listes blanches pour les intĂ©grations de confiance, les outils internes ou les clients VIP.

Si vous construisez un backend API sur une plateforme comme AppMaster, ces rĂšgles restent pertinentes. MĂȘme avec du code propre et rĂ©gĂ©nĂ©rĂ©, vous voudrez des valeurs par dĂ©faut protectrices afin qu’un mauvais client ne fasse pas tomber tout votre service.

Termes clés : rate limits, quotas, throttling et lockouts

Ces notions sont souvent confondues, mais elles résolvent des problÚmes différents et se ressentent différemment pour les utilisateurs.

Rate limit, quota et concurrence : ce que chacun signifie

Une rate limit est une limite de vitesse : combien de requĂȘtes un client peut faire sur une courte fenĂȘtre (par seconde, par minute). Un quota est un budget : l’usage total sur une fenĂȘtre plus longue (par jour, par mois). Une limite de concurrence plafonne le nombre de requĂȘtes en cours simultanĂ©ment, utile pour des endpoints coĂ»teux mĂȘme si le taux de requĂȘtes semble normal.

OĂč vous attachez la limite compte :

  • Par IP : simple, mais pĂ©nalise les rĂ©seaux partagĂ©s (bureaux, Ă©coles, opĂ©rateurs mobiles).
  • Par utilisateur : excellent pour les applications avec connexion, mais dĂ©pend d'une identitĂ© fiable.
  • Par clĂ© API : courant pour les APIs publiques, propriĂ©tĂ© claire et facile Ă  communiquer.
  • Par endpoint : utile quand une route est beaucoup plus lourde que les autres.

Throttling vs blocage, et oĂč se placent les lockouts

Le soft throttling ralentit le client (dĂ©lai, rĂ©duction de la capacitĂ© de rafale) pour qu'il puisse rĂ©cupĂ©rer sans casser les workflows. Le blocage dur rejette les requĂȘtes immĂ©diatement, gĂ©nĂ©ralement avec un HTTP 429.

Un lockout est plus sĂ©vĂšre qu'un 429 classique. Un 429 dit « rĂ©essayez bientĂŽt ». Un lockout dit « arrĂȘtez jusqu'Ă  ce qu'une condition soit remplie », comme une pĂ©riode de refroidissement, une revue manuelle ou une rĂ©initialisation de clĂ©. RĂ©servez les lockouts aux signaux d'abus clairs (credential stuffing, scraping agressif, authentifications invalides rĂ©pĂ©tĂ©es), pas aux pics de trafic normaux.

Si vous bĂątissez une API avec un outil comme AppMaster, considĂ©rez ces contrĂŽles sĂ©parĂ©ment : limites courte fenĂȘtre pour les rafales, quotas longs pour les coĂ»ts, et lockouts uniquement pour les mauvais comportements rĂ©pĂ©tĂ©s.

Choisir des limites pratiques sans deviner au hasard

De bonnes limites commencent par un objectif : protéger le backend tout en laissant les utilisateurs normaux terminer leur travail. Vous n'avez pas besoin de chiffres parfaits dÚs le premier jour. Il vous faut une base sûre et un moyen de l'ajuster.

Un point de départ simple est une limite par clé API qui correspond au type d'API que vous exploitez :

  • Faible trafic : 60–300 requĂȘtes par minute par clĂ©
  • Trafic moyen : 600–1 500 requĂȘtes par minute par clĂ©
  • Trafic Ă©levĂ© : 3 000–10 000 requĂȘtes par minute par clĂ©

Ensuite, segmentez les limites par type d'endpoint. Les lectures sont gĂ©nĂ©ralement moins coĂ»teuses et peuvent tolĂ©rer des limites plus Ă©levĂ©es. Les Ă©critures modifient des donnĂ©es, dĂ©clenchent souvent une logique supplĂ©mentaire et mĂ©ritent des plafonds plus stricts. Un pattern courant : 1 000/min pour les GET et 100–300/min pour les POST/PUT/DELETE.

Identifiez aussi les endpoints coĂ»teux et traitez-les sĂ©parĂ©ment. Recherche, gĂ©nĂ©ration de rapports, exports, uploads de fichiers et tout ce qui touche plusieurs tables ou exĂ©cute une logique lourde devraient avoir un bucket plus petit mĂȘme si le reste de l'API est gĂ©nĂ©reux. Si votre backend utilise des workflows visuels (par exemple des Business Process flows), chaque Ă©tape ajoutĂ©e reprĂ©sente du travail rĂ©el qui se multiplie en charge.

PrĂ©voyez les rafales avec deux fenĂȘtres : une courte pour absorber les pics rapides et une plus longue pour contrĂŽler l'usage soutenu. Un combo courant est 10 secondes + 10 minutes. Cela aide les utilisateurs qui cliquent vite sans donner une vitesse illimitĂ©e aux scrapers.

Enfin, dĂ©cidez ce qui arrive quand le client dĂ©passe la limite. La plupart des APIs publiques retournent HTTP 429 avec un temps de retry clair. Si le travail peut ĂȘtre diffĂ©rĂ© (comme un export), envisagez de le mettre en file d'attente plutĂŽt que de bloquer durement pour que les vrais utilisateurs obtiennent quand mĂȘme un rĂ©sultat.

Concevoir des quotas par clé qui paraissent justes

Les quotas par clé sont souvent la solution la plus équitable car ils s'alignent sur l'usage réel des clients : un compte, une clé API, une responsabilité claire. Les limites basées sur l'IP restent utiles, mais elles pénalisent souvent des innocents.

Les IP partagées sont la principale raison : tout un bureau peut sortir par une seule IP publique, et les opérateurs mobiles peuvent placer des milliers d'appareils derriÚre un petit pool d'IP. Si vous comptez seulement sur des plafonds par IP, un utilisateur bruyant peut ralentir tout le monde. Une politique par clé évite cela, et vous pouvez conserver une petite limite par IP comme filet pour les inondations évidentes.

Pour que les quotas paraissent justes, liez-les aux paliers clients sans piéger les nouveaux venus. Une clé gratuite ou d'essai doit permettre des tests réels, mais pas à l'échelle qui vous nuirait. Un pattern simple : rafales généreuses, taux soutenu modéré et un quota journalier conforme au plan.

Une politique par clé prévisible :

  • Autoriser des rafales courtes (chargements de page, imports batch), puis faire respecter un rythme soutenu.
  • Ajouter un plafond journalier par clĂ© pour limiter le scraping et les boucles dĂ©faillantes.
  • Augmenter les limites selon le plan, tout en gardant la mĂȘme structure pour que le comportement reste cohĂ©rent.
  • Appliquer un plafond plus bas pour les clĂ©s fraĂźchement créées jusqu'Ă  ce qu'elles bĂątissent un historique.
  • Conserver une petite limite par IP pour attraper les inondations Ă©videntes et les clients mal configurĂ©s.

Pour dĂ©courager le partage de clĂ© et les inscriptions automatisĂ©es, vous n'avez pas besoin d'une surveillance lourde. Commencez par des vĂ©rifications simples : changements gĂ©ographiques inhabituel, trop d'IP distinctes par heure pour une mĂȘme clĂ©, ou beaucoup de nouvelles clĂ©s créées depuis la mĂȘme source. Signalez et ralentissez d'abord ; verrouillez seulement aprĂšs signaux rĂ©pĂ©tĂ©s.

Le trafic anonyme est lĂ  oĂč des plafonds plus stricts ont du sens. Si vous proposez des clĂ©s d'essai, limitez-les fortement et exigez une vĂ©rification de base avant d'augmenter les limites. Si votre API alimente un formulaire public, envisagez un endpoint anonyme sĂ©parĂ© avec son propre quota pour protĂ©ger le reste du backend.

Si vous bĂątissez votre API avec une plateforme comme AppMaster, la logique par clĂ© est plus facile Ă  garder cohĂ©rente car auth, rĂšgles mĂ©tiers et gestion des rĂ©ponses vivent au mĂȘme endroit.

RĂ©ponses et en-tĂȘtes conviviaux pour le client (pour permettre la rĂ©cupĂ©ration)

Lancez une API que vous pouvez ajuster
Lancez un backend complet avec APIs, logique et UI, puis itérez votre politique au fil du temps.
Essayer la construction

La limitation de taux ne fonctionne durablement que si les clients comprennent ce qui s'est passĂ© et quoi faire ensuite. Visez des rĂ©ponses ennuyeusement prĂ©visibles : mĂȘme code d'Ă©tat, mĂȘmes champs, mĂȘme signification sur tous les endpoints.

Quand un client atteint une limite, retournez HTTP 429 (Too Many Requests) avec un message clair et un dĂ©lai concret. Le gain le plus rapide est d'ajouter Retry-After, car mĂȘme des clients simples peuvent ainsi attendre correctement.

Un petit ensemble d'en-tĂȘtes rend les limites explicites. Gardez des noms cohĂ©rents et incluez-les Ă  la fois dans les rĂ©ponses rĂ©ussies (pour que les clients puissent s'auto-rythmer) et dans les 429 (pour qu'ils puissent rĂ©cupĂ©rer) :

  • Retry-After : secondes Ă  attendre avant de retenter
  • X-RateLimit-Limit : requĂȘtes autorisĂ©es dans la fenĂȘtre courante
  • X-RateLimit-Remaining : requĂȘtes restantes dans la fenĂȘtre courante
  • X-RateLimit-Reset : quand la fenĂȘtre se rĂ©initialise (epoch seconds ou ISO time)
  • X-RateLimit-Policy : texte court du type "60 requests per 60s"

Faites le corps d'erreur aussi structuré que vos réponses de succÚs. Un schéma courant est un objet d'erreur avec un code stable, un message lisible et des indications de récupération.

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Too many requests. Please retry after 12 seconds.",
    "retry_after_seconds": 12,
    "limit": 60,
    "remaining": 0,
    "reset_at": "2026-01-25T12:34:56Z"
  }
}

Dites aux clients comment reculer quand ils voient des 429. L'exponential backoff est un bon dĂ©faut : attendre 1s, puis 2s, puis 4s, en plafonnant (par exemple Ă  30–60 secondes). Soyez aussi explicite sur le moment d'arrĂȘter les retries.

Évitez les surprises prĂšs des quotas. Quand une clĂ© est proche d'un plafond (par exemple 80–90% consommĂ©), incluez un champ ou un en-tĂȘte d'avertissement pour que les clients ralentissent avant d'Ă©chouer. Cela compte d'autant plus quand un script peut frapper plusieurs routes rapidement et brĂ»ler le budget plus vite que prĂ©vu.

Plan de déploiement étape par étape pour limites et quotas

Rendez les 429 conviviaux pour les clients
CrĂ©ez des payloads d'erreur et des en-tĂȘtes cohĂ©rents pour que les clients puissent reculer correctement.
Commencer

Un déploiement fonctionne mieux quand vous traitez les limites comme un comportement produit, pas comme une rÚgle ponctuelle de firewall. L'objectif reste : protéger le backend tout en laissant les clients normaux avancer.

Commencez par un inventaire rapide. Listez chaque endpoint, puis marquez-les par coût (CPU, travail base de données, appels tiers) et risque (login, reset de mot de passe, recherche, upload). Cela évite d'appliquer une seule limite brutale partout.

Un ordre de déploiement qui évite généralement les surprises :

  • Étiquetez les endpoints par coĂ»t et risque, et dĂ©cidez lesquels demandent des rĂšgles plus strictes (login, export massif).
  • Choisissez les clĂ©s d'identitĂ© par ordre de prioritĂ© : clĂ© API d'abord, puis user id, et IP seulement en fallback.
  • Ajoutez des limites courte fenĂȘtre (par 10 secondes ou par minute) pour arrĂȘter les rafales et scripts.
  • Ajoutez des quotas longue fenĂȘtre (par heure ou par jour) pour plafonner l'usage soutenu.
  • Ajoutez des allowlists pour les systĂšmes de confiance et les outils internes afin que l'opĂ©rationnel ne soit pas bloquĂ©.

Rendez la premiÚre release conservatrice. Il est plus facile d'assouplir ensuite que de débloquer des utilisateurs en colÚre.

Surveillez et ajustez, puis versionnez votre politique. Suivez combien de requĂȘtes atteignent les limites, quels endpoints dĂ©clenchent les limites et combien de clĂ©s uniques sont affectĂ©es. Quand vous changez des chiffres, traitez cela comme un changement d'API : documentez-le, dĂ©ployez progressivement et gardez rĂšgles anciennes et nouvelles sĂ©parĂ©es pour pouvoir revenir en arriĂšre rapidement.

Si vous construisez votre API avec AppMaster, planifiez ces rĂšgles en mĂȘme temps que vos endpoints et votre logique mĂ©tier afin que les limites reflĂštent le coĂ»t rĂ©el de chaque workflow.

Flux de verrouillage qui arrĂȘtent l'abus sans drame

Les lockouts sont la ceinture de sĂ©curitĂ©. Ils doivent arrĂȘter l'abus Ă©vident rapidement, tout en offrant aux utilisateurs normaux une voie claire pour rĂ©cupĂ©rer si quelque chose tourne mal.

Adoptez une approche calme avec pĂ©nalitĂ©s progressives. Supposez que le client est peut‑ĂȘtre mal configurĂ©, pas forcĂ©ment malveillant, et n'escaladez que si le mĂȘme schĂ©ma se rĂ©pĂšte.

Une échelle progressive simple

Utilisez un petit ensemble d'étapes faciles à expliquer et à implémenter :

  • Avertir : informer le client qu'il approche des limites et quand ça se rĂ©initialise.
  • Ralentir : ajouter de courts dĂ©lais ou serrer les limites par seconde pour cette clĂ©.
  • Verrouillage temporaire : bloquer pendant quelques minutes (pas des heures) avec une heure de dĂ©blocage exacte.
  • Verrouillage plus long : seulement aprĂšs des rafales rĂ©pĂ©tĂ©es sur plusieurs fenĂȘtres.
  • Revue manuelle : pour les schĂ©mas qui semblent intentionnels ou qui reviennent.

Le choix de ce que l'on verrouille compte. Par clé API est généralement le plus juste car cela cible l'appelant, pas tout le monde derriÚre un réseau partagé. Par compte aide quand les utilisateurs tournent des clés. Par IP peut aider pour le trafic anonyme, mais génÚre des faux positifs pour les NATs, bureaux et opérateurs mobiles. En cas d'abus sérieux, combinez les signaux (par exemple, verrouillez la clé et exigez des contrÎles supplémentaires pour cette IP), mais gardez le rayon d'impact réduit.

Rendez les lockouts basĂ©s sur le temps avec des rĂšgles simples : « bloquĂ© jusqu'Ă  14:05 UTC » et « se rĂ©initialise aprĂšs 30 minutes de comportement correct ». Évitez les bannissements permanents pour des systĂšmes automatisĂ©s. Un client boguĂ© peut boucler et consommer des limites trĂšs vite, donc concevez des pĂ©nalitĂ©s qui dĂ©croissent avec le temps. Une pĂ©riode soutenue Ă  faible dĂ©bit devrait rĂ©duire le niveau de pĂ©nalitĂ©.

Si vous développez votre API dans AppMaster, cette échelle correspond bien à des compteurs stockés plus un Business Process qui décide d'autoriser, ralentir ou bloquer et écrit l'heure de déverrouillage pour la clé.

Pour les rĂ©cidivistes, conservez une voie de revue manuelle. Ne vous embrouillez pas avec les utilisateurs. Demandez des IDs de requĂȘte, des timestamps et le nom de la clĂ© API, puis dĂ©cidez sur la base des preuves.

Erreurs courantes qui provoquent des faux positifs

Expédiez plus vite vers votre cloud
Déployez sur AppMaster Cloud ou sur votre AWS, Azure ou Google Cloud.
Déployer maintenant

Les faux positifs surviennent quand vos défenses bloquent des utilisateurs normaux. Ils apparaissent généralement quand les rÚgles sont trop simplistes pour la façon dont les gens utilisent réellement votre API.

Une erreur classique est une limite globale pour tout. Si vous traitez un endpoint de lecture peu coĂ»teux et un export cher de la mĂȘme façon, vous allez soit surprotĂ©ger le cheap (ennuyeux), soit sous-protĂ©ger le cost‑heavy (dangereux). SĂ©parez les limites par coĂ»t d'endpoint et rendez les chemins lourds plus stricts.

Le limitation uniquement par IP est un autre piÚge courant. Beaucoup d'utilisateurs réels partagent une IP publique (bureaux, écoles, opérateurs mobiles). Un utilisateur intensif peut bloquer tout le monde, et cela ressemble à des pannes aléatoires. Préférez la limitation par clé API en priorité, puis utilisez l'IP comme signal secondaire pour les abus évidents.

Les défaillances peuvent aussi créer des faux positifs. Si votre magasin de limites tombe, "fail closed" peut mettre toute votre API hors service. "Fail open" peut inviter un pic qui prend votre backend. Choisissez un fallback clair : gardez un petit cap d'urgence à la périphérie et dégradez gracieusement sur les endpoints non critiques.

La gestion cÎté client compte plus que ce que la plupart des équipes imaginent. Si vous retournez un 429 générique sans message clair, les utilisateurs réessaient plus fort et déclenchent davantage de blocages. Envoyez toujours Retry-After et gardez le texte d'erreur spécifique ("Too many requests for this key. Try again in 30 seconds.").

Le problÚme le plus évitable est la confidentialité. Des limites cachées ressemblent à des bugs quand les clients montent en charge en production pour la premiÚre fois. Partagez une politique simple et maintenez-la stable.

Checklist rapide pour éviter les faux positifs :

  • SĂ©parez les limites pour endpoints coĂ»teux vs bon marchĂ©
  • Limitez prioritairement par clĂ© API, pas seulement par IP
  • Comportement dĂ©fini quand le limiteur est indisponible
  • RĂ©ponses 429 claires avec Retry-After
  • Limites documentĂ©es et communiquĂ©es avant l'application

Si vous construisez votre API avec un outil comme AppMaster, cela signifie souvent définir des plafonds différents par endpoint et renvoyer des payloads d'erreur cohérents pour que les clients puissent reculer sans deviner.

Supervision et alerting qui aident réellement

La limitation de taux ne fonctionne que si vous voyez ce qui se passe en temps réel. L'objectif n'est pas d'attraper chaque pic, mais de repérer les schémas qui deviennent des pannes ou des clients furieux.

Commencez par un petit ensemble de signaux qui expliquent Ă  la fois le volume et l'intention :

  • RequĂȘtes par minute (globales et par clĂ© API)
  • Taux de 429 (requĂȘtes throttlĂ©es) et taux de 5xx (douleur backend)
  • Rafales de 401/403 rĂ©pĂ©tĂ©es (mauvaises clĂ©s, credential stuffing, clients mal configurĂ©s)
  • Endpoints les plus volumineux et les plus coĂ»teux (queries lentes, exports lourds)
  • Nouveaux endpoints inattendus dans le top 10

Pour séparer « mauvais trafic » et « on vient de déployer », ajoutez du contexte aux tableaux de bord : heure de déploiement, changements de feature flags, envois marketing. Si le trafic monte juste aprÚs une release et que le mix 429/5xx reste sain, c'est généralement de la croissance, pas de l'abus. Si la montée est concentrée sur une clé, une plage d'IP ou un endpoint coûteux, traitez-la comme suspecte.

Les alertes doivent ĂȘtre ennuyeuses. Utilisez des seuils avec cooldowns pour Ă©viter d'ĂȘtre dĂ©rangĂ© chaque minute pour le mĂȘme Ă©vĂ©nement :

  • Taux de 429 au‑dessus de X% pendant 10 minutes, notifier une fois par heure
  • 5xx au‑dessus de Y% pendant 5 minutes, paginer immĂ©diatement
  • Une clĂ© dĂ©passe le quota de Z% pendant 15 minutes, ouvrir une investigation
  • Rafales de 401/403 au‑dessus de N/min, signaler un possible abus

Quand une alerte se déclenche, gardez une note d'incident courte : ce qui a changé, ce que vous avez vu (top clés/endpoints) et ce que vous avez ajusté (limites, caches, blocages temporaires). Avec le temps, ces notes deviennent votre vrai playbook.

Exemple : vous lancez un nouvel endpoint de recherche et le trafic double. Si la plupart des appels ciblent cet endpoint sur de nombreuses clés, augmentez légÚrement le quota par clé et optimisez l'endpoint. Si une clé tape des exports en continu et fait monter la latence, calez ce endpoint séparément et contactez le propriétaire.

Checklist rapide : vérifications de bon sens avant et aprÚs le lancement

Protégez l'authentification et les routes à risque
Ajoutez l'authentification et appliquez des limites différentes pour les connexions, les lectures et les exports.
Construire l'API

Une bonne configuration est ennuyeuse quand elle fonctionne. Cette checklist attrape les problÚmes qui causent généralement des faux positifs ou laissent des trous évidents.

Avant de publier un nouvel endpoint

Effectuez ces vérifications en staging et de nouveau juste aprÚs le lancement :

  • IdentitĂ© : confirmez que le limiteur se base sur la bonne clĂ© (clĂ© API d'abord, puis user ou IP en fallback), et que les clĂ©s rotatives n'hĂ©ritent pas des pĂ©nalitĂ©s antĂ©rieures.
  • Limites : dĂ©finissez un quota par dĂ©faut par clĂ©, puis ajustez selon le coĂ»t de l'endpoint (lecture bon marchĂ© vs Ă©criture coĂ»teuse) et les rafales attendues.
  • RĂ©ponses : renvoyez un statut clair et des infos de rĂ©cupĂ©ration (temps de retry, budget restant, code d'erreur stable).
  • Logs : enregistrez qui a Ă©tĂ© limitĂ© (clĂ©/user/IP), quelle route, quelle rĂšgle a dĂ©clenchĂ© et un ID de requĂȘte pour le support.
  • Contournement : conservez une allowlist d'urgence pour vos monitors et intĂ©grations de confiance.

Si vous bĂątissez sur AppMaster, traitez chaque nouvel endpoint comme une dĂ©cision de niveau de coĂ»t : une recherche simple peut ĂȘtre gĂ©nĂ©reuse, tandis que tout ce qui dĂ©clenche une logique mĂ©tier lourde devrait commencer plus strict.

Lorsqu'un incident survient (abus ou montée soudaine de trafic)

Protégez le backend tout en permettant aux vrais utilisateurs de récupérer :

  • Augmentez temporairement les caps seulement pour les routes les moins risquĂ©es (souvent les lectures) et surveillez les taux d'erreur.
  • Ajoutez une allowlist courte pour les bons clients connus pendant l'investigation.
  • Serrez des routes risquĂ©es spĂ©cifiques plutĂŽt que d'abaisser les limites globales.
  • Activez une identitĂ© plus forte (exigez des clĂ©s API, rĂ©duisez la dĂ©pendance Ă  l'IP) pour Ă©viter de bloquer des rĂ©seaux partagĂ©s.
  • Capturez des Ă©chantillons : clĂ©s principales, IPs principales, user agents et patterns de payload exacts.

Avant d'augmenter les limites pour un client, vĂ©rifiez son pattern normal de requĂȘtes, la rĂ©partition des endpoints et s'il peut mutualiser ou ajouter du backoff. Confirmez aussi qu'il ne partage pas une clĂ© entre plusieurs apps.

Chaque mois, passez en revue : endpoints limités les plus fréquents, pourcentage de trafic atteint par les limites, nouveaux endpoints coûteux et si vos quotas correspondent toujours à l'usage réel.

Scénario d'exemple : protéger une API publique réelle sans casser les utilisateurs

Ajoutez des flux de verrouillage mesurés
Créez des pénalités progressives : avertir, ralentir, verrouillage temporaire, puis révision si le comportement se répÚte.
Construire des workflows

Imaginez que vous exploitez une API publique utilisée par deux apps : un portail client (fort volume, trafic stable) et un outil admin interne (faible volume, mais actions puissantes). Les deux utilisent des clés API, et le portail a aussi un endpoint de login pour les utilisateurs finaux.

Un aprĂšs-midi, un partenaire publie une intĂ©gration bugguĂ©e. Elle commence Ă  relancer les requĂȘtes Ă©chouĂ©es en boucle, envoyant 200 requĂȘtes par seconde depuis une seule clĂ© API. Sans garde‑fous, cette clĂ© peut Ă©vincer tout le monde.

Les limites par clĂ© contiennent le rayon d'impact. La clĂ© bugguĂ©e atteint son cap par minute, reçoit des 429 et le reste des clients continue de fonctionner. Vous pouvez aussi avoir une limite plus basse pour les endpoints coĂ»teux (comme les exports) afin que mĂȘme le trafic « autorisĂ© » ne surcharge pas la base.

En mĂȘme temps, une attaque brute‑force sur le login commence Ă  marteler l'endpoint d'auth. PlutĂŽt que de bloquer toute une plage d'IP (qui toucherait des utilisateurs rĂ©els derriĂšre un NAT), vous le ralentissez puis le verrouillez selon le comportement : trop d'Ă©checs par compte plus par IP sur une courte fenĂȘtre. L'attaquant subit des dĂ©lais progressivement plus longs, puis un verrouillage temporaire.

Un vrai client qui a mal tapé son mot de passe quelques fois peut récupérer parce que vos réponses sont claires et prévisibles :

  • 429 avec Retry-After pour que le client sache quand retenter
  • Un verrouillage court (par exemple 10–15 minutes), pas un ban permanent
  • Messages d'erreur cohĂ©rents qui ne fassent pas fuiter l'existence d'un compte

Pour confirmer la correction, vous surveillez quelques métriques :

  • Taux de 429 par clĂ© API et endpoint
  • Taux d'Ă©checs d'auth et nombre de verrouillages
  • Latence P95 et CPU base de donnĂ©es pendant l'incident
  • Nombre de clĂ©s uniques affectĂ©es (doit rester faible)

C'est Ă  quoi ressemble une limitation protectrice : elle protĂšge le backend sans punir les utilisateurs normaux.

Étapes suivantes : installez une petite politique et itĂ©rez

Vous n'avez pas besoin d'un modĂšle parfait dĂšs le premier jour. Commencez par une politique petite et claire et amĂ©liorez‑la en apprenant le comportement rĂ©el des utilisateurs.

Une premiÚre version solide contient généralement trois parties :

  • Un baseline par clĂ© (requĂȘtes par minute) couvrant la plupart des endpoints
  • Des plafonds plus stricts sur les endpoints coĂ»teux (recherche, exports, uploads, rapports complexes)
  • Des rĂ©ponses 429 claires avec un message court expliquant quoi faire ensuite

Ajoutez des lockouts uniquement quand le risque d'abus est élevé et que l'intention est facilement inférable. Signup, login, reset de mot de passe et création de tokens sont des candidats typiques. Gardez les lockouts courts au départ (minutes, pas jours) et préférez la friction progressive : ralentir, bloquer temporairement, puis exiger une vérification plus forte.

Écrivez la politique en clair pour que le support puisse l'expliquer sans aide d'ingĂ©nierie. Incluez ce qui est limitĂ© (par clĂ© API, par IP, par compte), la fenĂȘtre de rĂ©initialisation et comment un client peut rĂ©cupĂ©rer.

Si vous implĂ©mentez cela en construisant un nouveau backend, AppMaster peut ĂȘtre un choix pratique : vous pouvez crĂ©er des APIs, dĂ©finir des workflows mĂ©tiers (y compris compteurs et dĂ©cisions de verrouillage) visuellement, puis dĂ©ployer sur des clouds ou exporter le code source gĂ©nĂ©rĂ© quand vous avez besoin d'un contrĂŽle total.

Facile à démarrer
Créer quelque chose d'incroyable

Expérimentez avec AppMaster avec un plan gratuit.
Lorsque vous serez prĂȘt, vous pourrez choisir l'abonnement appropriĂ©.

Démarrer
Limitation de débit pour APIs publiques : quotas pratiques et flux de verrouillage | AppMaster