| 1. Injection | Envoyer des données non fiables à un interpréteur (SQL, NoSQL, OS Command). | SQL Injection : SELECT * FROM users WHERE user='admin' OR 1=1--' | Utiliser des requêtes préparées (Prepared Statements) ou des ORM. Valider et échapper toutes les entrées utilisateur. |
| 2. Liens Brisés & Contrôle d’Accès Déficient | L’application ne restreint pas correctement l’accès aux fonctions ou données sensibles. | Un utilisateur normal accède à la page d’administration via une URL directe. | Implémenter des contrôles d’accès côté serveur à chaque point d’accès. Ne jamais faire confiance au client. |
| 3. Stockage de Données Sensibles | Les données sensibles (mots de passe, numéros de carte) ne sont pas correctement protégées. | Mots de passe stockés en clair ou hachés faiblement. | Chiffrer toutes les données sensibles au repos et en transit. Utiliser des fonctions de hachage fortes (bcrypt, Argon2) pour les mots de passe. |
| 4. Entités Externes XML (XXE) | Un parseur XML vulnérable traite des références à des entités externes non fiables. | Un attaquant lit des fichiers système ou exécute du code à distance via XML. | Désactiver le traitement des entités externes dans les parseurs XML. |
| 5. Erreur de Configuration Sécurisée | Configuration par défaut non sécurisée, fichiers inutilisés, messages d’erreur détaillés. | Un attaquant trouve des fichiers de sauvegarde ou des répertoires d’administration non protégés. | Appliquer une stratégie de Hardening (durcissement) : désactiver les fonctionnalités inutiles, supprimer les exemples, restreindre les accès aux fichiers. |
| 6. Cross-Site Scripting (XSS) | Injection de scripts côté client (JavaScript) malveillants dans une page web vue par d’autres utilisateurs. | Un attaquant injecte un script qui vole les cookies de session. | Échapper toutes les données affichées côté client. Utiliser des frameworks qui protègent nativement contre le XSS (React, Vue). |
| 7. Désérialisation Dangereuse | Désérialisation d’objets non fiables, pouvant entraîner l’exécution de code à distance. | Un attaquant injecte un objet malveillant qui exécute une commande système. | Éviter la désérialisation de sources non fiables. Utiliser des formats de données sécurisés (JSON simple). |
| 8. Composants Vulnérables | Utilisation de bibliothèques, frameworks ou autres composants avec des vulnérabilités connues. | Une bibliothèque tierce avec une faille de sécurité permet une exécution de code à distance. | Mettre à jour régulièrement les dépendances. Utiliser des outils d’analyse de vulnérabilités (OWASP Dependency-Check). |
| 9. Log & Monitoring Insuffisants | Absence de journaux d’événements (logs) ou de supervision adéquate des attaques. | Une attaque réussie n’est pas détectée avant des mois. | Implémenter une journalisation centralisée et des systèmes d’alerte pour les activités suspectes (tentatives de connexion échouées, erreurs API). |
| 10. Falsification de Requête Côté Serveur (SSRF) | L’application ne valide pas l’URL fournie par l’utilisateur et effectue une requête vers une ressource interne ou externe inattendue. | Un attaquant force l’application à accéder à des serveurs internes ou à scanner des ports sur le réseau. | Valider toutes les URLs fournies par l’utilisateur. Utiliser une liste blanche d’hôtes autorisés. |