Codage sécurisé 101 : Les 10 vulnérabilités OWASP
L'injection SQL, XSS et l'auth cassée reviennent dans les violations. Apprenez comment ces vulnérabilités existent dans le code et les correctifs qui les éliminent.
Table des matières
L'OWASP Top 10
L'OWASP (Open Web Application Security Project) publie une liste des 10 risques de sécurité les plus critiques pour les applications web. La connaître est fondamental pour tout développeur.
Les 10 principales vulnérabilités
A01 : Contrôle d'accès cassé
Les utilisateurs peuvent accéder à des ressources auxquelles ils ne devraient pas avoir accès. Exemple : changer un ID dans l'URL pour voir les données d'un autre utilisateur.
A02 : Défaillances cryptographiques
Données sensibles transmises ou stockées sans chiffrement approprié — mots de passe en clair, HTTP au lieu de HTTPS.
A03 : Injection
Code malveillant (SQL, commandes OS) injecté via des données utilisateur non validées.
-- Requête vulnérable
SELECT * FROM users WHERE username = '" + username + "'
-- Si username = ' OR 1=1 --, toute la table est exposée
A04 : Design non sécurisé
Manque de modélisation des menaces et de principes de conception sécurisée dès le départ.
A05 : Mauvaise configuration de sécurité
Comptes par défaut, messages d'erreur détaillés, fonctionnalités inutiles activées.
A06 : Composants vulnérables
Utilisation de bibliothèques/frameworks avec des vulnérabilités connues non corrigées.
A07 : Authentification et identification cassées
Mots de passe faibles autorisés, pas de protection contre la force brute, gestion des sessions défaillante.
A09 : Journalisation et surveillance insuffisantes
Sans journalisation adéquate, les attaques ne sont pas détectées pendant des semaines.
Principes fondamentaux
- Validez toutes les entrées — ne faites jamais confiance aux données utilisateur
- Encodez les sorties — prévenez le XSS
- Principe du moindre privilège — chaque composant n'a que les permissions nécessaires
- Défense en profondeur — plusieurs couches de sécurité