Qu'est-ce qu'un appel d'API ?

Un appel d'API, ou demande d'API, permet à une application de demander des données ou des services à une autre application. La plupart des applications web effectuent régulièrement des appels d'API.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Définir l'appel API
  • Comprendre comment les appels d'API sont utilisés
  • Apprenez comment les attaquants peuvent utiliser les appels d'API

Copier le lien de l'article

Qu'est-ce qu'un appel d'API ?

Les interfaces de programmation d'applications (API) sont un moyen pour un programme d'interagir avec un autre. Les appels d'API sont le moyen par lequel ils interagissent. Un appel d'API, ou demande d'API, est un message envoyé à un serveur demandant à une API de fournir un service ou une information.

Si Jan reçoit beaucoup d'invités à dîner, elle peut appeler un traiteur et lui demander de préparer la nourriture pour la fête. Cela lui évite de perdre beaucoup de temps et d'efforts à préparer elle-même les repas. De même, une application peut appeler "" une autre pour obtenir les données ou les fonctionnalités nécessaires. Ainsi, les développeurs n'ont pas à consacrer du temps et des efforts à la création de fonctionnalités d'application qui peuvent être intégrées via une API.

Comme les API sont aujourd'hui intégrées à presque toutes les applications Web, les appels d'API ont lieu en permanence dans les coulisses. Supposons qu'une personne recherche des billets de bus sur un site web de voyage. Ce site envoie un appel API aux serveurs des différentes compagnies de bus et reçoit en retour des informations sur les trajets disponibles et leur coût. Du point de vue de l'utilisateur, ce processus devrait être presque instantané.

Où va un appel d'API ?

Les appels d'API voyagent d'un client vers un point de terminaison API. Les points de terminaison API sont les endroits vers lesquels les appels d'API se dirigent - le plus souvent, une application Web et un serveur. Un client mobile, par exemple, génère un appel d'API qui va vers le point de terminaison de l'API, un serveur. Le serveur reçoit l'appel API, le traite, exécute la requête et envoie une réponse.

Lorsque Jan (dans l'analogie ci-dessus) appelle la société de restauration, elle le fait en composant un numéro de téléphone. De même, les appels d'API sont dirigés vers un Uniform Resource Identifier (URI).

Un URI est un moyen normalisé d'identifier une ressource, tout comme un numéro de téléphone identifie une ligne téléphonique. La ressource identifiée peut être un site web, une application, un serveur, un contact par courrier électronique, ou même un objet du monde réel.

Pour les API Web, l'URI est généralement un localisateur de ressources uniforme (URL). Une URL est un type d'URI permettant d'identifier des emplacements Internet tels qu'un site Web ou un serveur. Une URL doit inclure le protocole de la couche d'application, tel que HTTP, utilisé pour l'atteindre. Les adresses de pages Web sont écrites sous forme d'URL, comme « https://www.cloudflare.com/learning ». Les points de terminaison des API sont également des URL.

La plupart des API Web utilisent HTTP, qui est donc inclus dans l'URL du point de terminaison de l'API. Par exemple, le point de terminaison API de base de Cloudflare est « https://api.cloudflare.com/client/v4/ » (en savoir plus). Les appels d'API basés sur le protocole HTTP utilisent des verbes HTTP (types de demandes) tels que GET, POST, et PUT pour indiquer le service ou la ressource dont ils ont besoin à partir du point de terminaison de l'API.

Comment les appels API peuvent-ils être utilisés pour une attaque ?

Comme tout ce qui est exposé à l'Internet, les API sont vulnérables aux attaques provenant de diverses sources. Les attaquants peuvent utiliser les appels d'API de plusieurs façons pour attaquer une API, notamment :

  • Attaques par déni de service (DoS) et attaques par déni de service distribué (DDoS) : Ce type d'attaque prive de service les autres utilisateurs de l'API. Les attaquants peuvent inonder une API d'appels d'API, ou structurer leurs appels d'API de telle sorte qu'ils immobilisent le serveur pendant une longue période.
  • Exploitation de vulnérabilités : les attaquants peuvent essayer d'envoyer des appels d'API qui tirent parti d'une faille dans l'API pour inciter le serveur à révéler des données qu'il ne devrait pas, à fonctionner d'une manière pour laquelle il n'a pas été conçu ou à leur donner un accès non autorisé.

Ces attaques et d'autres peuvent avoir un impact négatif sur une organisation qui fournit des services API.

Comment sécuriser les API contre les appels d'API invalides ?

Les stratégies suivantes peuvent aider à sécuriser les API.

  • Comprendre et suivre les points de terminaison API : maintenir une liste à jour de tous les Points de terminaison API en production.
  • Vérifier les clients d'API : l'authentification garantit que les appels d'API proviennent d'un client légitime. Il existe plusieurs façons de procéder, mais l'une des plus efficaces est le TLS mutuel, une méthode d'authentification dans laquelle chaque point d'extrémité de l'API vérifie l'autre à l'aide de la cryptographie à clé publique.
  • Valider le schéma de l'API : le schéma d'une API est comme ses règles d'utilisation. Si un appel d'API ne suit pas le schéma, il peut s'agir d'une tentative malveillante d'exploiter l'API. La validation du schéma de l'API permet d'identifier et de bloquer les appels d'API invalides.
  • Utilisez l'atténuation des DDoS : un fournisseur d'atténuation des DDoS bloque ou absorbe les demandes excessives afin qu'un serveur ne soit pas submergé. Cloudflare est l'un de ces fournisseurs.

Pour en savoir plus, consultez Sécurité des API. Vous pouvez également vous renseigner sur Cloudflare API Shield, qui protège les API contre un large éventail d'attaques.

Service commercial