OWASP Top 10 : Guide Pratique des Vulnérabilités Web
L'OWASP (Open Web Application Security Project) publie régulièrement la liste des 10 vulnérabilités web les plus critiques. Ce guide vous explique chacune avec des exemples concrets et des solutions.
L'OWASP Top 10 est la référence mondiale en sécurité web. C'est le standard utilise par les pentesteurs, les auditeurs et les equipes de sécurité pour évaluer la posture d'un site web. Comprendre ces 10 catégories est essentiel pour tout développeur ou responsable technique.
A01 - Contrôle d'accès défaillant
Un utilisateur peut acceder a des ressources ou effectuer des actions qui ne lui sont pas autorisees.
Exemple : Modifier l'URL /api/users/123/profile en /api/users/456/profile pour acceder au profil d'un autre utilisateur.
Prévention :
- Verifiez les autorisations cote serveur pour chaque requête
- Appliquez le principe du moindre privilege
- Desactivez le listage de repertoires
A02 - Defaillances cryptographiques
Données sensibles transmises ou stockées sans chiffrement adequat.
Exemple : Mots de passe stockes en MD5, données de carte bancaire transmises en HTTP.
Prévention :
- Utilisez HTTPS partout (TLS 1.2+)
- Hachez les mots de passe avec
bcryptouargon2 - Chiffrez les données sensibles au repos (AES-256)
A03 - Injection
Des données non fiables sont envoyees a un interpreteur dans le cadre d'une commande ou d'une requête.
Exemple classique - SQL Injection :
-- Entree utilisateur : ' OR '1'='1' --
SELECT * FROM users WHERE email = '' OR '1'='1' --'
Prévention :
- Requêtes preparees (parameterized queries) - obligatoire
- Validation et sanitisation des entrees
- ORM avec echappement automatique
A04 - Conception non sécurisée
Failles inherentes a l'architecture de l'application, pas juste a l'implémentation.
Prévention : Modelisation des menaces (threat modeling), revue d'architecture sécurité, principes de sécurité des la conception (security by design).
A05 - Mauvaise configuration de sécurité
Configurations par defaut, services inutiles actives, messages d'erreur trop verbeux.
Exemples courants :
- Page d'admin accessible publiquement (
/admin,/wp-admin) - Headers de sécurité manquants
- Mode debug active en production
- Credentials par defaut non changees
A06 - Composants vulnerables et obsoletes
Utilisation de bibliotheques, frameworks ou plugins avec des vulnérabilités connues.
Prévention :
- Inventaire de toutes les dependances
- Mises a jour regulieres
- Outils d'audit :
npm audit,pip audit, Snyk, Dependabot
A07 - Defaillances d'identification et d'authentification
Mots de passe faibles autorises, pas de protection brute-force, sessions non sécurisées.
Prévention :
- 2FA pour les comptes sensibles
- Politique de mots de passe forts (12+ caracteres)
- Rate limiting sur les endpoints de login
- Tokens de session sécurisés (HttpOnly, Secure, SameSite)
A08 - Defaillances d'intégrité des logiciels et des données
Code et infrastructure qui ne verifient pas l'intégrité. Inclut la deserialisation non sécurisée et les pipelines CI/CD non protégés.
A09 - Defaillances de journalisation et de surveillance
Sans logs et monitoring, les brèches ne sont détectées qu'après des semaines ou des mois.
Prévention : Centralisez vos logs, configurez des alertes pour les evenements suspects, et faites des revues de logs regulieres.
A10 - Falsification de requêtes cote serveur (SSRF)
L'attaquant fait envoyer des requêtes par le serveur vers des ressources internes.
Prévention : Validez et filtrez les URLs cote serveur, bloquez les requêtes vers les réseaux internes, utilisez des listes blanches.
Comment vérifier votre site contre l'OWASP Top 10 ?
Vérifier manuellement chaque catégorie demande des heures de travail spécialisé. Un audit de sécurité automatisé peut couvrir l'ensemble de l'OWASP Top 10 en quelques heures.