Comment sécuriser une API web ?
En bref
Sécuriser une API suppose d'authentifier chaque appel, de vérifier les droits sur chaque objet demandé et pas seulement à l'entrée, de chiffrer les échanges, de limiter le nombre d'appels par client, de valider les données reçues et de journaliser les accès. Les clés doivent être propres à chaque application et révocables à tout moment.
Une API est une porte d'entrée technique par laquelle un logiciel dialogue avec un autre. Contrairement à un site, elle n'a pas d'interface visible : on croit facilement qu'elle passe inaperçue. C'est une erreur de raisonnement. Une API mal protégée s'explore méthodiquement, et elle donne souvent un accès plus direct aux données que le site lui-même.
Authentifier chaque appel
Une API ne connaît pas de session comme un navigateur : chaque appel doit porter sa propre preuve d'identité. Trois formes sont courantes.
| Moyen | Usage adapté | Point de vigilance |
|---|---|---|
| Clé d'application | Échanges entre deux systèmes que vous maîtrisez. | Une clé par application et par environnement, jamais une clé commune. |
| Jeton à durée limitée | Applications au nom d'un utilisateur. | Durée de vie courte, renouvellement prévu, révocation possible. |
| Délégation d'autorisation | Accès accordé à un service tiers pour le compte d'un utilisateur. | Périmètre limité aux données réellement nécessaires. |
Dans tous les cas, la clé ne circule jamais dans l'adresse de la requête, où elle finirait enregistrée dans les journaux et les historiques. Elle voyage dans un en-tête, sur une connexion chiffrée.
Vérifier les droits sur chaque objet
C'est la faille la plus fréquente des interfaces techniques. L'appel est authentifié, donc accepté, mais personne ne vérifie que l'objet demandé appartient bien à ce client. Un identifiant modifié suffit alors à consulter le document d'un autre. La règle est de contrôler, pour chaque appel, non seulement qui parle mais ce à quoi cette identité donne droit. Le raisonnement rejoint celui de notre article sur la gestion des droits d'accès.
Limiter, valider, mesurer
- Limitation du débit : un plafond d'appels par client et par minute empêche l'extraction massive de données et les essais répétés.
- Volume des réponses : imposer une pagination plutôt que renvoyer des listes entières sur simple demande.
- Validation des données reçues : type, format et longueur attendus, avec rejet explicite du reste.
- Champs renvoyés : ne retourner que ce qui est nécessaire, en évitant de laisser passer des champs internes par facilité.
- Journalisation : conserver l'identité, l'horodatage, l'origine et l'opération, afin de repérer un usage anormal.
Des messages d'erreur sobres
Une erreur détaillée aide le développeur, mais renseigne aussi celui qui cherche une faiblesse : version du logiciel, structure de la base, existence d'un compte. Renvoyez un message générique au client et conservez le détail dans vos journaux internes. Évitez notamment de répondre différemment selon qu'un identifiant existe ou non.
Ne pas oublier la documentation et les environnements
- La documentation technique n'a pas à être publique si l'API ne l'est pas : restreignez son accès comme celui de l'interface elle-même.
- Les outils d'essai interactifs, très pratiques en développement, n'ont pas leur place sur l'environnement réel.
- Les anciennes versions de l'API restent souvent en service après une évolution, sans bénéficier des corrections apportées à la nouvelle : fixez une date de retrait.
- Les clés d'accès se révoquent au départ d'un prestataire ou à la fin d'un partenariat, au même titre que les comptes nominatifs.
Ces règles s'appliquent aussi bien à une interface que vous publiez qu'à celles que vous consommez, sujet abordé dans notre article sur la façon de relier ses logiciels entre eux. NexSecure conçoit et sécurise ces interfaces dans ses projets de développement web sur mesure.
Questions fréquentes
Une API interne doit-elle être protégée ?
Oui. Interne signifie rarement inaccessible : un poste compromis, un serveur mal isolé ou une erreur de configuration suffisent à l'exposer. Appliquez l'authentification et le contrôle des droits même sur le réseau de l'entreprise.
Une clé d'API équivaut-elle à un mot de passe ?
Elle joue le même rôle, sans la personne derrière. Elle se range donc hors du code, se limite à un usage précis, se renouvelle et se révoque. Elle ne doit jamais figurer dans une application installée sur un téléphone.
Comment repérer un usage anormal ?
En comparant l'activité de chaque client à son comportement habituel : volume d'appels, plages horaires, types d'opérations, origine. Une extraction massive sort nettement de la normale si la limitation du débit est en place.
Faut-il documenter une API publique en détail ?
Oui pour ceux qui l'utilisent, mais sans exposer d'informations internes comme les champs non destinés aux clients ou les codes d'erreur détaillés. La documentation décrit l'usage prévu, pas le fonctionnement interne.
Sources
Service lié
Articles liés
Rédigé par l'équipe NexSecure. Responsable de la publication : Yohann Toumine. Dernière mise à jour le 11 septembre 2026.
Une question sur votre situation ? Parler de votre projet