Attaques
Attaques web
Les attaques web exploitent la manière dont une application reçoit, transforme, stocke et renvoie des données. Les failles apparaissent souvent aux frontières : navigateur, API, session, base de données, fichiers et droits.
Logique générale
Une application web traite constamment des entrées :
- paramètres d'URL
- formulaires
- cookies
- headers
- fichiers
- JSON envoyé à une API
- identifiants de ressources
Chaque entrée doit être validée, chaque sortie doit être encodée, et chaque action sensible doit vérifier l'autorisation côté serveur.
Familles majeures
Injection
Une injection apparaît quand une donnée utilisateur devient une commande, une requête ou une expression interprétée.
Familles fréquentes :
- SQL injection
- NoSQL injection
- LDAP injection
- OS command injection
- template injection
La défense repose sur les requêtes paramétrées, la validation, le moindre privilège et l'absence de concaténation dangereuse.
XSS
Le Cross-Site Scripting permet d'exécuter du JavaScript dans le navigateur d'une victime.
La défense combine :
- encodage des sorties
- validation des entrées
- Content Security Policy
- cookies
HttpOnly,SecureetSameSite - séparation claire entre données et HTML
Contrôle d'accès défectueux
Un utilisateur accède à une ressource ou une action sans droit légitime.
Variantes :
- IDOR
- élévation horizontale
- élévation verticale
- routes d'administration mal protégées
- contrôles uniquement côté client
SSRF
Le serveur est poussé à faire une requête vers une destination choisie par l'attaquant. Le risque est fort dans les environnements cloud et les réseaux internes.
Mauvaise configuration
Une configuration faible peut exposer :
- pages d'administration
- messages d'erreur
- fichiers de sauvegarde
- headers absents
- debug en production
- buckets ou répertoires publics
Lecture défensive
Pour analyser une application, demande-toi :
- quelles données entrent
- où elles sont validées
- où elles sont stockées
- où elles ressortent
- quels droits sont vérifiés
- quels logs existent
- quelles erreurs sont visibles
Défense
Bonnes pratiques :
- valider les entrées côté serveur
- encoder les sorties selon le contexte
- utiliser des requêtes paramétrées
- centraliser l'autorisation
- protéger les sessions
- limiter les uploads
- journaliser les actions sensibles
- tester les chemins d'erreur
- mettre à jour les dépendances
À retenir
La sécurité web repose sur une règle simple à dire mais difficile à tenir : ne jamais faire confiance à ce qui vient du client.
