Aller au contenu principal
Version: 4.x

Protection CSRF

Comme vous utilisez l'authentification avec des cookies, vous devez ajouter une protection CSRF à votre application. C'est très facile avec Foal, même lorsque vous construisez une SPA.

Ouvrez le fichier de configuration default.json et activez la protection CSRF.

{
"port": "env(PORT)",
"settings": {
"session": {
"store": "@foal/typeorm",
"csrf": {
"enabled": true
}
},
...
}
...
}

Maintenant, lorsque les sessions seront utilisées avec des cookies, le serveur enverra un jeton supplémentaire au client dans un cookie nommé XSRF-Token. Ce jeton devra être récupéré par l'application frontend et renvoyé dans chaque requête POST, PATCH, PUT et DELETE avec l'en-tête X-XSRF-Token. Si ce n'est pas le cas, le serveur renverra une erreur 403.

Si vous utilisez axios comme bibliothèque de requêtes, comme dans ce tutoriel, vous n'avez rien à faire. Tout est géré en arrière-plan.

Si vous redémarrez votre serveur de développement et ouvrez les outils de développement de votre navigateur, vous verrez qu'axios inclut automatiquement le jeton pour vous lors de la création d'un nouveau post.

X-XSRF-Token header example