Protection CRSF (Cross-Site Request Forgery)
La protection CRSF permet de protéger une application web d’attaques au niveau du service d’authentification des utilisateurs.
1. Présentation de l’attaque
L’attaque de base consiste à se servir du compte d’un utilisateur ayant des droits supérieurs sur une application web. Le principe : faire exécuter un script à un utilisateur connecté. Le script permet de soumettre un formulaire sans que l’utilisateur ne s’en rende compte.
Exemple
Un chef de projet reçoit un lien web vers un projet en interne. La page web de destination envoie une requête POST de type formulaire demandant la suppression d’un utilisateur sur l’outil de gestion de projet. Cet outil reconnaît l’utilisateur connecté et supprime un collaborateur si le CRSF n’est pas présent.
2. Principe du CRSF
L’idée est d’intégrer au formulaire un champ caché contenant un nom et une valeur générée par le serveur. Les données générées sont aussi stockées au niveau de la session.
Pour que la protection CRSF fonctionne, il est impératif d’avoir un service de gestion de sessions (cf. chapitre Gestion de requête HTTP - Gestion des sessions).
L’utilisateur remplit les champs du formulaire et envoie les données. Le serveur vérifie si les éléments générés sont bien présents...