Le Top 10 OWASP est souvent présenté comme une liste de failles réservée aux développeurs. Il peut pourtant servir de grille de lecture pratique pour évaluer les risques d’un site web, d’une boutique en ligne ou d’une application métier. Son objectif n’est pas de fournir une méthode d’attaque, mais d’aider les équipes à identifier les familles de problèmes qui méritent une attention prioritaire.
Cette liste ne remplace ni un audit de sécurité ni une analyse adaptée au contexte. Elle permet en revanche de poser les bonnes questions : les utilisateurs sont-ils correctement authentifiés ? Les droits sont-ils contrôlés côté serveur ? Les données sensibles sont-elles protégées ? Les dépendances et les configurations sont-elles maintenues ?
À quoi sert réellement le Top 10 OWASP ?
OWASP, pour Open Worldwide Application Security Project, est une communauté qui publie des ressources consacrées à la sécurité des applications. Son Top 10 regroupe des catégories de risques fréquemment rencontrées dans les applications web. La liste évolue au fil des éditions : les intitulés, les regroupements et les priorités peuvent changer.
Il faut donc le considérer comme un cadre de sensibilisation et de priorisation, pas comme une certification. Un site qui ne présente aucun problème apparent dans une catégorie n’est pas automatiquement sécurisé. À l’inverse, un risque identifié ne signifie pas nécessairement qu’une exploitation est possible dans le contexte précis de l’application.
Pour un entrepreneur ou un responsable de site, le Top 10 sert notamment à :
- discuter plus clairement avec un prestataire ou une équipe technique ;
- repérer les zones qui nécessitent une vérification ;
- prioriser les corrections selon leur impact ;
- intégrer des contrôles de sécurité dans la maintenance courante ;
- éviter de se concentrer uniquement sur le mot de passe ou le pare-feu.
Les grandes familles de risques à connaître
Les catégories du Top 10 ne sont pas toutes aussi visibles pour un utilisateur non technique. Certaines concernent directement les comptes et les données, tandis que d’autres touchent le code, l’architecture ou la maintenance du projet.
Contrôles d’accès défaillants
Un contrôle d’accès défaillant permet à un utilisateur d’effectuer une action qu’il ne devrait pas pouvoir réaliser. Le problème peut concerner l’accès à une page d’administration, la consultation d’une commande appartenant à un autre client ou la modification d’un contenu sans autorisation suffisante.
La bonne question n’est pas seulement « l’utilisateur est-il connecté ? », mais plutôt : « a-t-il le droit précis d’effectuer cette action sur cette ressource ? » Les vérifications doivent être réalisées côté serveur, car masquer un bouton dans l’interface ne constitue pas une protection.
Erreurs d’authentification et d’identification
Cette famille concerne la manière dont l’application vérifie l’identité des utilisateurs et protège leurs sessions. Les risques peuvent venir de mots de passe mal gérés, de mécanismes de récupération de compte trop faibles, de sessions qui restent ouvertes inutilement ou d’une authentification multifacteur absente lorsque le niveau de risque le justifie.
Les mesures défensives habituelles comprennent la limitation des tentatives, la protection des sessions, l’utilisation d’un gestionnaire de mots de passe et l’activation d’un second facteur pour les comptes sensibles. Une procédure de récupération doit être examinée avec autant de sérieux que la connexion elle-même.
Injection de données
Une injection se produit lorsque des données fournies par un utilisateur sont interprétées comme une instruction par un autre système. Les conséquences peuvent toucher une base de données, un moteur de recherche, une commande système ou un autre composant.
La prévention repose notamment sur des requêtes paramétrées, la validation adaptée au contexte et une séparation claire entre les données et les instructions. L’échappement reste utile dans certains contextes, mais il ne doit pas être utilisé comme réponse universelle à tous les types d’injection.
Conception non sécurisée
Certains problèmes apparaissent avant même l’écriture du code. Une application peut être conçue sans limitation des tentatives, sans séparation des rôles ou sans scénario prévu en cas d’action sensible. Dans ce cas, corriger après coup peut être coûteux, car la sécurité touche l’architecture globale.
Une approche plus solide consiste à définir les menaces plausibles, les données à protéger et les actions critiques dès la phase de conception. Un simple diagramme des rôles et des flux de données peut déjà révéler des zones à risque.
Mauvaise configuration de sécurité
Une configuration dangereuse peut exposer des informations techniques, laisser des fonctionnalités inutiles actives ou utiliser des réglages trop permissifs. Les environnements de développement, de test et de production ne devraient pas partager aveuglément les mêmes paramètres.
La vérification porte sur les comptes par défaut, les messages d’erreur, les en-têtes de sécurité, les permissions de fichiers, les services inutilisés et les secrets présents dans la configuration. Les valeurs sensibles doivent être gérées en dehors du code source et protégées dans les environnements de déploiement.
Composants obsolètes ou vulnérables
Une application dépend rarement de son seul code métier. Elle utilise un système, un serveur web, un framework, des bibliothèques et parfois des extensions. Une version non maintenue peut introduire un risque même si le code développé localement semble correct.
Il est utile de tenir un inventaire des dépendances, de suivre les avis de sécurité pertinents et de tester les mises à jour avant leur déploiement. Mettre à jour sans vérifier les changements peut provoquer une régression, mais ne jamais mettre à jour laisse progressivement s’accumuler la dette de sécurité.
Défaillances liées aux données et à la cryptographie
Les données sensibles doivent être protégées pendant leur transmission et lorsqu’elles sont stockées. Le niveau de protection dépend de la nature des données, de leur durée de conservation et des conséquences d’une divulgation.
Une erreur fréquente consiste à chiffrer certains éléments tout en laissant les clés, les journaux ou les sauvegardes insuffisamment protégés. La question à poser est donc plus large que « le site utilise-t-il HTTPS ? » : où les données circulent-elles, où sont-elles stockées et qui peut y accéder ?
Défauts d’intégrité des logiciels et des données
Une application peut être fragilisée si elle fait confiance à du code, à une mise à jour ou à une source de données sans vérifier suffisamment son origine et son intégrité. Les chaînes de dépendances et les processus de déploiement sont particulièrement concernés.
La protection passe par des sources fiables, des mécanismes de vérification, des droits limités pour les pipelines de déploiement et une revue des changements importants. Les mises à jour automatiques doivent être accompagnées d’une surveillance et d’une possibilité de retour arrière.
Journalisation et surveillance insuffisantes
Un incident non détecté pendant plusieurs semaines est plus difficile à contenir. Les journaux doivent aider à comprendre les événements importants : connexion inhabituelle, changement de droits, modification d’un compte ou accès répété refusé.
Journaliser ne signifie pas conserver toutes les données sans limite. Les journaux doivent être protégés contre la modification, accessibles aux personnes autorisées et configurés pour ne pas exposer inutilement des informations sensibles.
Gestion insuffisante des erreurs et des requêtes côté serveur
Les applications qui récupèrent des ressources externes ou qui traitent des fichiers et des requêtes au nom de l’utilisateur doivent limiter précisément ce qu’elles autorisent. Une validation trop permissive peut entraîner l’accès à une ressource interne ou l’utilisation inattendue d’un service.
Les contrôles doivent porter sur les destinations autorisées, les formats acceptés, les délais d’attente, les redirections et les permissions réseau. Ce type de vérification demande souvent l’intervention d’un développeur ou d’un spécialiste de la sécurité.
Comment utiliser cette grille pour évaluer un projet ?

Le Top 10 devient utile lorsqu’il est relié à des actifs concrets. Commencez par recenser ce qui mérite d’être protégé : comptes administrateurs, données clients, paiements, contenus, clés d’API, fichiers téléversés et outils d’administration.
- Décrire les rôles. Listez les profils existants et les actions autorisées pour chacun.
- Cartographier les flux. Identifiez les données qui entrent, sortent ou transitent par des services tiers.
- Repérer les actions sensibles. Changement de mot de passe, export de données, modification de droits et paiement doivent recevoir une attention particulière.
- Vérifier les protections. Examinez l’authentification, les autorisations, les mises à jour, les sauvegardes et les journaux.
- Classer les corrections. Traitez d’abord les risques combinant fort impact, exposition importante et correction réaliste à court terme.
Cette démarche permet d’éviter une erreur courante : traiter chaque catégorie comme une case à cocher indépendante. Une faiblesse d’authentification, une mauvaise journalisation et une configuration permissive peuvent se renforcer mutuellement.
Que vérifier en priorité sur un petit site ou une application simple ?

Un projet de petite taille ne doit pas appliquer mécaniquement les mêmes contrôles qu’une plateforme complexe. Il doit toutefois couvrir quelques fondamentaux avant de chercher des optimisations plus avancées.
| Priorité | Vérification | Question pratique |
|---|---|---|
| 1 | Comptes et accès | Les comptes administrateurs utilisent-ils des mots de passe uniques et un second facteur lorsque c’est possible ? |
| 2 | Mises à jour | Le CMS, les extensions, les bibliothèques et le serveur sont-ils suivis ? |
| 3 | Sauvegardes | Les sauvegardes sont-elles séparées du site et testées régulièrement ? |
| 4 | Configuration | Les messages d’erreur, fichiers sensibles et services inutiles sont-ils correctement maîtrisés ? |
| 5 | Surveillance | Une activité inhabituelle pourrait-elle être détectée rapidement ? |
Pour une boutique ou un service qui traite des données personnelles, cette base doit être complétée par une analyse du contexte, des obligations applicables et des prestataires utilisés. Un hébergeur ou un outil externe peut réduire certains risques, mais il ne supprime pas la responsabilité de configuration et de contrôle.
Les limites d’une lecture superficielle du Top 10
Le Top 10 ne fournit pas une note globale de sécurité. Il ne dit pas non plus quelles corrections appliquer à un projet particulier sans examen du code, de l’infrastructure et des usages.
Trois erreurs reviennent souvent :
- se limiter à l’interface visible : un bouton masqué n’empêche pas nécessairement une action non autorisée ;
- installer un outil sans traiter la cause : un scanner peut signaler un problème, mais il ne corrige pas une conception fragile ;
- négliger les processus : une bonne configuration perd de son intérêt si les accès ne sont jamais révoqués ou si les mises à jour sont oubliées.
Un audit professionnel reste recommandé lorsque l’application traite des paiements, des données sensibles, des informations de santé, des accès clients nombreux ou des fonctions métier critiques. Le Top 10 sert alors à préparer les échanges et à comprendre les recommandations, pas à remplacer l’expertise.
Pour démarrer correctement, choisissez une application ou un périmètre précis, documentez ses utilisateurs et ses données, puis examinez les accès, les mises à jour et les configurations avant de vous attaquer aux sujets plus spécialisés. Cette progression réduit les risques les plus courants sans transformer la sécurité en checklist déconnectée du fonctionnement réel du projet.