Sécurité des API

Protégez une API sans écrire de spécification : ToutWAF construit un profil de routes, l'observe sans rien refuser, vous montre ce qu'il aurait bloqué, puis vous passez en blocage. Jetons, clés, limites GraphQL et couverture de l'OWASP API Top 10 complètent le tout.

Toutes les fonctions

Où le trouver dans la console : menu Protection : Sécurité des API (onglets Protéger mon API, Couverture OWASP, Inventaire, Spécifications, Clés).

À quoi ça sert

Protéger sans spécification

Donnez l'adresse de l'API ou chargez un fichier OpenAPI, un schéma GraphQL ou un fichier proto. ToutWAF reconnaît le type d'API et prépare la protection.

Apprendre avant de refuser

En mode apprentissage, rien n'est refusé. Un rapport liste ce qui aurait été bloqué, avec la cause et le correctif, jusqu'à ce que le profil soit prêt.

Savoir où vous en êtes

Un onglet liste les dix risques de l'OWASP API Security Top 10 avec leur état et un bouton de correction sûre quand elle existe.

Contrôler qui appelle et combien

Jetons JWT, clés d'API avec portées et quotas, limites GraphQL, limites WebSocket, détection d'énumération d'identifiants.

Protéger mon API en trois étapes

Rien n'est à saisir sur un serveur. Chaque étape est réversible.

Votre API

ToutWAF contacte seulement l'adresse que vous donnez, sans identifiants, refuse les adresses internes et reconnaît REST, GraphQL, SOAP, gRPC, OData, JSON-RPC, tRPC et WebSocket.

Un profil en apprentissage

Méthodes et chemins déclarés, types de contenu acceptés, taille maximale de requête et de lot. Le rapport « Ce qui aurait été bloqué » se remplit au fil du trafic.

Le passage en blocage

L'état dit quand c'est prêt. Le passage demande confirmation et annonce combien de requêtes auraient été refusées ; « Revenir à l'apprentissage » l'annule.

Votre APIadresse ou fichier de spécificationProfil de routesmode apprentissage : rien n'est refuséRapportce qui aurait été bloqué, et pourquoiBlocageou retour à l'apprentissage
Illustration : du profil en apprentissage au blocage.

Les briques de protection

Gratuit

Elles se combinent ; l'assistant active celles qui conviennent à votre API.

  • Profil de routes : seuls les méthodes et chemins déclarés passent, avec leurs types de contenu et leurs tailles.
  • JWT : signature, algorithme autorisé (le jeton sans signature est refusé), émetteur, destinataire, expiration, clés JWKS avec rotation, et découverte des clés auprès de votre émetteur OIDC.
  • Clés d'API : portées par méthode et chemin, quotas par minute, rotation avec période de grâce ; le secret n'est montré qu'à la création.
  • Injections dans les valeurs JSON et affectation de masse détectées par les détecteurs intégrés.
Requête d'APIProfil de routesJetons et clésLimites etdétecteurs
Illustration : ce qui examine une requête d'API.

GraphQL et WebSocket

Gratuit

Des limites qui évitent les requêtes démesurées.

  • GraphQL : profondeur, alias, taille de lot et complexité sont limités (10, 15, 10 et 1000 par défaut), et l'introspection est bloquée par défaut.
  • WebSocket : taille des messages, débit par connexion, volume par minute et JSON valide sur les chemins que vous listez ; une infraction ferme la connexion.

Énumération d'identifiants (BOLA et IDOR)

GratuitPro et plus

Une heuristique, pas un contrôle d'autorisation : seul le code de votre API sait qui possède quoi.

  • Gratuit : une même identité (clé, sujet de jeton, session) qui demande trop d'objets distincts dans une fenêtre de temps est signalée.
  • Sous licence : un identifiant que ce client n'a jamais reçu, appris à partir des réponses JSON, est signalé ; par défaut en détection seule.

Couverture de l'OWASP API Top 10

Gratuit

Chaque risque est marqué Protégé, Partiellement protégé ou Non protégé, avec les vérifications en mots simples et les constats des 30 derniers jours.

  • Le bouton « Corriger » n'active que des contrôles qui ne peuvent pas casser une API normale, et garde une valeur que vous avez choisie. Un risque qui demande un choix renvoie vers le bon onglet.
  • Les limites sont écrites sur la page : l'autorisation au niveau objet reste dans votre code, l'accaparement de stock et le pillage de contenu ne sont pas détectés, et la consommation d'API tierces ne dépasse jamais « partiel ».
  • Le profil s'exporte en YAML sans secret ni adresse, pour le garder à côté du code de l'API.

Découverte des API

Gratuit

Activée par défaut : le moteur dresse l'inventaire de ce qu'il voit passer.

  • Points d'accès, paramètres et classes de données sensibles observés, fusionnés avec vos spécifications importées.
  • Un document OpenAPI peut être généré à partir du trafic ; les API fantômes (non documentées) et zombies (inutilisées) sont listées ; un score de posture s'appuie sur la liste de l'OWASP.
  • Un site neuf n'a pas encore de trafic : rien n'est découvert avant les premières requêtes.

Sous licence

Pro et plus

Visibles dans la console mais verrouillés sans licence. Ce qui est déjà configuré continue d'être appliqué après l'expiration.

  • Import de spécification et validation des requêtes et des réponses : OpenAPI 3, Swagger 2, schéma GraphQL, fichier proto gRPC.
  • « Tester ma protection » avec des attaques inoffensives, simulation sur le trafic passé et import d'un profil.
  • Consommateurs, formules, quotas et pages d'usage privées ; limites par clé ou par utilisateur.
  • Webhooks entrants signés : Stripe, GitHub, GitLab, Slack, Shopify, Twilio et HMAC générique.

Ce qui n'est pas fait, ou pas éprouvé

Nous préférons le dire clairement.

  • Pas faits : l'analyse AsyncAPI (un document est conservé mais non appliqué), l'introspection de jetons OAuth2 et le TLS mutuel pour les API de partenaires. Les webhooks PayPal ne sont pas pris en charge.
  • Une seule spécification par site est appliquée. Le gRPC n'est pas inspecté en profondeur ; seule la validation par fichier proto (sous licence) le fait.
  • Le JWT, les clés d'API, le profil de routes et le BOLA sont désactivés par défaut : l'assistant ou vos réglages les activent site par site. Pour un WebSocket, seuls les messages envoyés par le navigateur sont inspectés.
  • Les contrôles de l'assistant (détection de l'adresse de spécification de chaque pile, essais de « Tester ma protection », rapport d'apprentissage) ont été exercés contre des serveurs locaux simulés, pas contre une vraie application de chaque pile.

Cas d'usage

Une API mobile sans documentation

L'assistant apprend les routes du trafic réel, le rapport montre les écarts, vous passez en blocage quand il est vide.

Une API GraphQL publique

Profondeur, alias et complexité bornés, introspection fermée, et un message de refus clair pour les requêtes démesurées.

Une API ouverte à des partenaires

Clés avec portées et quotas, jetons vérifiés auprès de votre émetteur, et formules par consommateur sous licence.

Ce qui est inclus, par édition

La base est gratuite ; les options avancées demandent une offre payante. Une option sous licence reste visible dans la console, verrouillée, jamais cachée.

ÉditionGratuit Inclus dans toutes les offres, dont les deux offres gratuites (Free et Free +)Pro et plus Offres payantes : visible dans la console, verrouillé sans licence. À partir de Pro, sauf mention Agency ou Enterprise
  • Profil de routes : méthodes, chemins, types de contenu, tailles de requête et de lot déclarés, d'abord en apprentissageGratuit
  • Protéger mon API : mise en place guidée à partir d'une adresse ou d'une spécification, avec un rapport de ce qui serait refuséGratuit
  • Onglet de couverture de l'OWASP API Top 10, avec des corrections sûres en un clicGratuit
  • Injections dans les valeurs JSON et affectation de masse, limites GraphQL (profondeur, alias, lot, complexité)Gratuit
  • Contrôles JWT (signature, algorithme, revendications, JWKS) et découverte des clés auprès de votre émetteur OIDCGratuit
  • Clés d'API avec portées par méthode et chemin, quotas et rotationGratuit
  • BOLA/IDOR : une même identité qui touche trop d'objetsGratuit
  • Limites WebSocket par connexionGratuit
  • Découverte des points d'accès à partir du trafic, OpenAPI généré, API fantômes et zombies, score de postureGratuit
  • Import de spécification et validation des requêtes et des réponses : OpenAPI 3, Swagger 2, schéma GraphQL, fichier proto gRPCPro et plus
  • BOLA : identifiants jamais attribués à ce client, appris à partir du traficPro et plus
  • Test de ma protection avec des attaques inoffensives, simulation sur le trafic passé, import d'un profilPro et plus
  • Consommateurs, formules et quotas, pages d'usage privées, limites par clé ou par utilisateurPro et plus
  • Webhooks entrants signés : Stripe, GitHub, GitLab, Slack, Shopify, Twilio et HMAC génériquePro et plus

Revenir à la valeur par défaut d'une option avancée est toujours possible. Ce qui se passe à la fin d'une licence payante est décrit dans la FAQ des tarifs : 48 h de grâce, 48 h de lecture seule, puis protection WAF désactivée jusqu'au renouvellement.

Tarifs Lire la documentation

Placez un bouclier devant vos applications dès aujourd'hui

Installez-le sur votre propre serveur, ou écrivez-nous pour parler de licences.