Qu’est ce que le Rate Limiting ? | Rate Limiting et bots

Le Rate Limiting bloque les utilisateurs, les bots ou les applications qui sur-utilisent une propriété web ou l'utilisent abusivement . Le Rate Limiting peut arrêter certains types d'attaques de bots.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Comprendre la finalité du Rate Limiting
  • Découvrir comment fonctionne le Rate Limiting
  • Découvrir quelques applications pratiques du Rate Limiting
  • Expliquer la différence entre le Rate Limiting et d'autres types de gestion de bots

Contenu associé


Vous souhaitez continuer à enrichir vos connaissances ?

Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !

Consultez la politique de confidentialité de Cloudflare pour en savoir plus sur la manière dont nous collectons et traitons vos données personnelles.

Copier le lien de l'article

Qu'est-ce que le Rate Limiting ?

Limitation du taux sur le panneau de limitation de vitesse près de la route, 75 requêtes par minute

La limitation du taux est une stratégie permettant de limiter le trafic réseau. Elle limite la fréquence à laquelle une personne peut répéter une action dans un certain délai, par exemple, essayer de se connecter à un compte. La limitation du taux peut aider à arrêter certains types d'activités de bots malveillants. Elle peut également réduire la pression sur les serveurs web. Cependant, la limitation du taux n'est pas une solution complète pour gérer l'activité des bots.

Quels types d'attaques de bots sont stoppés par le Rate Limiting ?

 La Limitation du taux est souvent utilisé pour empêcher les bots malveillants d'avoir un impact négatif sur un site Web ou une application. Les attaques de bots que le Rate Limiting peut aider à atténuer sont les suivantes :

Le Rate Limiting protège également contre la surutilisation de l'API. Elle n'est pas nécessairement d'origine malveillante ou due à l'activité de bots, mais il est néanmoins important de l'éviter.

Comment fonctionne le Rate Limiting ?

La limitation du taux est exécutée dans une application, plutôt que d'être exécutée sur le serveur web lui-même. En règle générale, la limitation du taux est basée sur le suivi des adresses IP dont proviennent les requêtes et sur le temps écoulé entre chaque requête. L'adresse IP est le principal moyen utilisé par une application pour identifier qui fait la requête et ce que fait la requête.

Une solution de Rate Limiting mesure le temps entre chaque requête de chaque adresse IP et mesure également le nombre de requêtes dans un délai spécifié. S'il y a trop de requêtes provenant d'une même adresse IP dans le délai imparti, la solution de Rate Limiting ne répondra pas aux requêtes de l'adresse IP pendant un certain temps.

En quelque sorte, une application à laquelle est appliquée une solution de Rate Limiting dira : « Merci de ralentir » aux utilisateurs uniques qui font des requêtes à un rythme rapide. Ce procédé est comparable à un policier qui arrête un conducteur en excès de vitesse sur la route, ou à une maman qui dit à son enfant de ne pas manger autant de bonbons dans un laps de temps aussi court.

Qu'est-ce qu'une adresse IP ?

Une adresse IP est l'identifiant numérique unique (ou, en IPv6, alphanumérique) attribué à tout appareil qui se connecte à Internet. Chaque appareil aura sa propre adresse IP tant qu'il est en ligne, et comme une adresse physique dans une rue ou un numéro de téléphone, cela permet aux appareils d'envoyer des messages dans les deux sens. Une adresse traditionnelle (IPv4) ressemble à ceci : 198.41.129.1

Pour les appareils des utilisateurs, les adresses IP ne sont généralement pas permanentes, car il n'y a pas suffisamment d'adresses IP disponibles en IPv4. En fait, le fournisseur d'accès à Internet (FAI) de l'utilisateur attribuera de manière dynamique des adresses lorsque les appareils se connectent à Internet.

Une solution de Rate Limiting peut utiliser une adresse IP comme base pour déterminer les appareils qui font trop de requêtes et qui doivent être temporairement bloqués.

Comment fonctionne le Rate Limiting avec les connexions utilisateur ?

Les utilisateurs peuvent se retrouver bloqués sur un compte s'ils tentent en vain de se connecter trop de fois en peu de temps. Cela se produit lorsqu'un site web dispose d'un Rate Limiting des connexions.

Cette précaution existe, non pas pour frustrer les utilisateurs qui ont oublié leur mot de passe, mais pour bloquer les attaques par force brute dans lesquelles un bot essaie des milliers de mots de passe différents afin de deviner le bon et de pénétrer dans le compte. Si un bot ne peut effectuer que trois ou quatre connexions par heure, alors une telle attaque a statistiquement peu de chances d'aboutir.

Le Rate Limiting sur une page de connexion peut être appliquée en fonction de l'adresse IP de l'utilisateur qui tente de se connecter, ou en fonction d'un nom d'utilisateur. De manière idéale, une combinaison des deux sera utilisée, pour les raisons suivantes :

  • Si la limitation du taux n'est appliquée que par adresse IP, les pirates utilisant l'attaque par force brute pourraient le contourner en tentant de se connecter à partir de plusieurs adresses IP (en utilisant par exemple un botnet).
  • L'utilisation de noms d'utilisateur seuls ferait que tout pirate possédant une liste de noms d'utilisateur connus pourrait essayer différents mots de passe couramment utilisés avec ces noms d'utilisateur et serait susceptible de pénétrer avec succès dans au moins quelques comptes à partir de la même adresse IP.

Étant donné que le Rate Limiting est nécessaire pour empêcher ces attaques par force brute, les utilisateurs qui ne se souviennent pas de leur mot de passe peuvent être soumis au rate limiting au même titre que les bots malveillants. Les utilisateurs verront probablement un message du genre « trop de tentatives de connexion » et seront invités à réessayer dans un délai indiqué, ou seront informés que leurs comptes sont verrouillés.

Comment fonctionne le Rate Limiting pour les API ?

Une API (Application Programming Interface, interface de programmation d'application) est un moyen de demander des fonctionnalités à un programme. Les API sont invisibles de la plupart des utilisateurs, mais s'avèrent d'une importance extrême pour le bon fonctionnement des applications. Le site web d'un restaurant pourrait, par exemple, s'appuyer sur l'API d'un service de réservation afin de permettre aux clients de réserver leurs tables en ligne. Pour prendre un autre exemple, une plateforme d'e-commerce pourrait également intégrer l'API d'une compagnie maritime afin de présenter des frais d'expédition précis aux utilisateurs.

Chaque fois qu'une API répond à une demande, le propriétaire de cette API doit payer pour le temps de calcul : les ressources du serveur nécessaires pour exécuter le code et fournir une réponse à cette demande API. Dans l'exemple ci-dessus, l'intégration de l'API du restaurant obligera le service de réservation de tables à payer le temps de calcul chaque fois qu'un client du restaurant effectue une réservation.

Pour cette raison, toute application ou service qui propose une API pour les développeurs aura des limites sur le nombre d'appels API pouvant être effectués par heure ou par jour et par utilisateur. Ainsi, les développeurs tiers n'utilisent pas trop les API.

Le Rate Limiting peut également motiver les développeurs à payer plus pour tirer parti de l'API : souvent, ils ne peuvent faire que trop d'appels API avant de payer plus pour le service API.

Le Rate Limiting pour les API aide également à protéger contre les attaques de bots malveillants. Un pirate peut utiliser des bots pour effectuer de nombreux appels répétés à une API au point de rendre le service indisponible, ou bloquer complètement le service. Il s'agit d'un type d'attaque par déni de service DoS ou DDoS.

Comment les plateformes de médias sociaux comme Twitter et Instagram utilisent-elles le contrôle du volume de requêtes ?

Le contrôle du volume de requêtes pour plateforme de médias sociaux est souvent semblable au contrôle du volume de requêtes pour API. Par exemple, toute application tierce qui intègre Twitter ne peut être actualisée que pour rechercher de nouveaux tweets ou messages un certain nombre de fois par heure. Instagram a des limites similaires pour les applications tierces. C'est pourquoi il peut arriver que les utilisateurs reçoivent des messages tels que « limite atteinte ».

Quelle est la différence entre la gestion des bots et le Rate Limiting ?

La limitation du taux a un usage relativement précis : bien qu'utile, il ne peut arrêter que des types très spécifiques d'activité de bot. De plus, la limitation du taux n'est pas seulement pour les bots, mais pour en limiter l'utilisation en général. La limitation du taux de Cloudflare, par exemple, protège contre les attaques DDoS, les attaques d'API (« API abuse ») et les attaques par force brute, mais il n'atténue pas nécessairement d'autres formes d'activité malveillante des bots, et il ne fait pas de distinction entre les bons et les mauvais bots.

En revanche, la gestion des bots peut détecter de manière globale l'activité des bots en général. Par exemple, la solution de gestion des bots de Cloudflare utilise l'apprentissage automatique pour identifier les bots probables, ce qui lui permet de bloquer une plus grande variété d'attaques de bots (telles que le bourrage d'identifiants (Credential Stuffing), les courriers indésirables, l'accaparement de stocks, etc.). Les petites organisations peuvent également bloquer les mauvais bots avec le mode de lutte contre les super bots, disponible dans les offres Pro et Business de Cloudflare.