đ đœââïž CSRF Protection
Introductionâ
La protection contre les attaques CSRF (Cross-Site Request Forgery) est essentielle pour sécuriser vos applications web. Bow Framework fournit des outils simples et efficaces pour prévenir ces attaques en générant et en validant automatiquement des jetons CSRF.
Une attaque CSRF consiste Ă tromper un utilisateur authentifiĂ© pour qu'il exĂ©cute une action non autorisĂ©e sur une application. Pour prĂ©venir cela, Bow gĂ©nĂšre un jeton CSRF unique pour chaque session utilisateur active. Ce jeton est utilisĂ© pour valider toutes les requĂȘtes envoyĂ©es Ă l'application.
Protection CSRFâ
Pour protéger vos formulaires, incluez un champ caché contenant le jeton CSRF :
<form method="POST" action="/upload">
{{{ csrf_field() }}}
...
</form>
Le middleware Bow\Middleware\CsrfMiddleware::class
, inclus dans le groupe de middleware Web par défaut, vérifie automatiquement que le jeton fourni correspond à celui stocké dans la session.
Vous pouvez activer ou désactivé la vérification automatique dans le fichier config/app.php
, avec la clé auto_csrf
, qui prend true
ou false
.
return [
...
"auto_csrf" => true
...
];
IntĂ©gration avec JavaScriptâ
Lors de la crĂ©ation d'applications utilisant AJAX ou des bibliothĂšques JavaScript comme Axios ou jQuery, il est recommandĂ© de configurer votre bibliothĂšque HTTP pour inclure automatiquement le jeton CSRF dans les en-tĂȘtes des requĂȘtes.
Ajoutez le jeton CSRF Ă une balise META HTML :
<meta name="csrf-token" content="{{ csrf_token() }}">
Ensuite, configurez votre bibliothĂšque pour inclure cet en-tĂȘte dans chaque requĂȘte :
Exemple avec jQueryâ
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
Exemple avec Axiosâ
import axios from 'axios';
axios.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
Gestion des jetons CSRFâ
Jetons dans les en-tĂȘtes HTTPâ
Outre les champs de formulaire, Bow permet d'utiliser l'en-tĂȘte X-CSRF-TOKEN
pour valider les requĂȘtes. Cela est particuliĂšrement utile pour les requĂȘtes AJAX.
Jetons dans les cookiesâ
Bow génÚre également un cookie nommé XSRF-TOKEN
contenant le jeton CSRF actuel. Ce cookie peut ĂȘtre utilisĂ© pour configurer automatiquement l'en-tĂȘte X-XSRF-TOKEN
.
Par exemple, des frameworks comme Angular et Axios utilisent ce cookie pour sĂ©curiser les requĂȘtes sans configuration supplĂ©mentaire.
Avec Bow Framework, la mise en Ćuvre de la protection CSRF devient simple et efficace, vous permettant de vous concentrer sur le dĂ©veloppement de fonctionnalitĂ©s tout en assurant la sĂ©curitĂ© de vos utilisateurs.
Il manque quelque chose ?
Si vous rencontrez des problÚmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @bowframework ou sur directement sur le github.