Attaques
SQLi et XSS
SQLi et XSS font partie des vulnérabilités web les plus connues. Elles apparaissent quand l'application traite mal les données fournies par l'utilisateur.
Injection SQL
Une injection SQL se produit lorsqu'une application intègre directement des données utilisateur dans une requête SQL sans contrôle suffisant.
Conséquences possibles :
- accès à des données sensibles
- modification de données
- suppression d'informations
- contournement d'authentification
Causes fréquentes :
Entrées utilisateur non filtrées
Requêtes SQL dynamiques
Absence de validation
Défenses :
- requêtes paramétrées
- validation des entrées
- moindre privilège côté base
- tests de sécurité réguliers
- journalisation sans fuite de détails sensibles
Cross-Site Scripting
Une XSS permet d'injecter du JavaScript dans une page consultée par d'autres utilisateurs. Le navigateur exécute ce code comme s'il provenait du site légitime.
Types
| Type | Description |
|---|---|
| XSS réfléchi | Le script est transmis dans une requête et renvoyé immédiatement |
| XSS stocké | Le script est enregistré puis exécuté à chaque consultation |
Conséquences possibles :
- vol de session
- phishing
- modification du contenu affiché
- actions au nom de la victime
Défenses :
- validation des entrées
- encodage des sorties
- Content Security Policy
- cookies
HttpOnly,SecureetSameSite - mises à jour régulières
Comparaison
| SQL Injection | XSS |
|---|---|
| Cible la base de données | Cible le navigateur |
| Exploite SQL | Exploite JavaScript |
| Impact sur les données | Impact sur les utilisateurs |
| Côté serveur | Côté client |
Principe clé
Ne fais jamais confiance aux données fournies par l'utilisateur. Valide ce qui entre, encode ce qui sort, limite les privilèges.
Différence de défense
SQLi se traite surtout côté serveur et base de données. XSS se traite surtout au moment de produire du contenu HTML, JavaScript ou attributs.
À retenir :
- une requête paramétrée protège contre la SQLi
- un encodage de sortie protège contre beaucoup de XSS
- une validation seule ne suffit pas
- une CSP réduit l'impact, mais ne corrige pas la cause
HttpOnlyprotège le cookie contre certains vols via JavaScript
Signaux dans les logs
À surveiller :
- erreurs SQL répétées
- paramètres très longs ou inhabituels
- caractères spéciaux dans les champs inattendus
- erreurs applicatives après recherche ou formulaire
- alertes WAF
- contenus HTML inattendus dans les données stockées
