Cross-site request forgery (CSRF)
Une attaque CSRF exploite une session ouverte pour une requête non souhaitée. Le cookie de session ne prouve pas à lui seul que l’action était voulue.
La cross-site request forgery, ou CSRF, aussi appelée XSRF, est une attaque dans laquelle un autre site pousse le navigateur à envoyer une requête non souhaitée à une application cible. Si le navigateur joint automatiquement des identifiants valides et qu’une protection adaptée manque, l’application peut traiter la requête comme une instruction de la personne connectée.
Une modification dans un portail de projet
Un portail de projet fictif permet de modifier l’adresse de notification dans le champ notificationEmail. Une personne y est connectée et visite aussi une autre page. Cette page tente de déclencher la modification. L’envoi du cookie de session dépend notamment des règles de gestion des cookies du navigateur.
Vérifier un cookie de session valide établit à quelle session la requête est rattachée. Cela ne prouve pas que la personne voulait cette modification d’adresse. L’emploi de POST seul n’empêche pas non plus l’attaque.
Protéger les requêtes qui modifient l’état
Pour un formulaire, le framework peut fournir un jeton CSRF imprévisible lié à la session. Le serveur vérifie cette valeur supplémentaire avant la modification. La protection doit être effectivement utilisée pour les requêtes concernées.
MDN décrit aussi des contrôles fondés sur les métadonnées Fetch, c’est-à-dire les informations du navigateur sur le contexte de la requête, et d’autres méthodes adaptées au type de requête. L’attribut de cookie SameSite ajoute une couche de protection. Un même site et une même origine (protocole, nom d’hôte et port) ne sont pas équivalents ; des sous-domaines différents peuvent appartenir au même site. Un jeton CSRF valide ne remplace pas non plus la vérification du droit de la personne connectée à modifier l’adresse.
Sources
Termes associés
- APIUne API définit comment un logiciel peut utiliser les fonctions ou données proposées par un autre logiciel.
- HTMLHTML décrit la structure et le sens des contenus web. Il identifie notamment titres, tableaux et champs de saisie.
- Cross-site scripting (XSS)Avec une faille XSS, un contenu externe devient du code exécutable dans le navigateur. Le point décisif est la façon dont l’application affiche les entrées.
- Minimisation des donnéesLa minimisation limite les données personnelles à ce qui est adéquat, pertinent et nécessaire pour une finalité définie.
- Politique de conservation des donnéesUne politique de conservation définit finalité, début, durée et fin du stockage. Tâches de suppression et copies exigent une prise en compte technique.
- Chiffrement par enveloppeLe chiffrement par enveloppe sépare la clé des données de celle qui la protège. Le fichier chiffré et sa clé enveloppée doivent être gérés ensemble.
Votre projet avec ASES
Décrivez-nous votre projet. Nous revenons vers vous avec une première évaluation.