Laravel 4 CSRF sur toutes les requêtes POST
Été à la recherche dans laravel ces derniers temps, et d'essayer de comprendre la protection CSRF qu'ils ont. Cependant, je ne peux pas le faire fonctionner. Est il possible que je puisse valider tous les post de demande soumis, avec les CSRF filtre? J'ai vu que le laravel système a:
App::before(function($request)
{
//
});
Comment serais-je capable de l'utiliser avec l'CSRF filtre? Été d'essayer quelques différentes choses comme
App::before(function($request)
{
Route::filter('csrf','post');
});
Mais je suis sans doute loin d'ici.. comment serait-il? ou est-il encore possible de le faire de cette façon?
Consultez la documentation : four.laravel.com/docs/security vous Trouverez votre réponse dans le milieu de la page 🙂
FWIW, puisque c'est encore sur la première page de Google, la version la plus récente de la sécurité docs est: laravel.com/docs/security
FWIW, puisque c'est encore sur la première page de Google, la version la plus récente de la sécurité docs est: laravel.com/docs/security
OriginalL'auteur Dexty | 2013-06-26
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser des groupes de routage. Cela permettra d'appliquer les options spécifiées pour toutes les routes définies dans un groupe:
Pour certains itinéraires, ou si le regroupement n'est pas ce que vous voulez, vous pouvez également utiliser un filtre de modèle:
REMARQUE: ce code serait aller dans votre routes.php fichier
OriginalL'auteur Blessing
C'est la meilleure et la solution la plus simple:
Pas besoin de groupe de routes ou de jouer avec les constructeurs.
Où placez-vous cette ligne de code?
Dans
app/routes.php
OriginalL'auteur Rafał Walczak
Dans mon BaseController j'ai ceci:
D'avoir de tels
App::before
filtre est une approche intéressante, mais je ne sais pas lequel est le meilleur?parent::__construct();
à vos contrôleurs si vous avez l'intention d'utiliser le BaseController approche.Il fonctionne en fait très bien pour moi, sans
parent::__construct();
. Ajout il en résulte unSymfony \ Component \ Debug \ Exception \ FatalErrorException: Cannot call constructor
.Brillant. Pas besoin d'ajouter
parent::_contruct()
dans Laravel 4.2OriginalL'auteur envision
Pour une raison de mettre
en BaseController.php ne fonctionne pas pour moi; j'ai fait le test avec de faux jetons. Alors je suis venu avec la solution suivante:
routes.php:
filters.php (csrf section de filtre):
Qui a fait le tour pour moi.
OriginalL'auteur Nancho
Cela vous permettra d'appliquer CSRF à toutes les formes à travers toutes les pages de votre application
Remarque: 'post' est le HTTP verbe POST - donc, il va couvrir Laravel post, put, delete demandes etc.
OriginalL'auteur Laurence
Le code que vous avez fourni que crée le filtre. Vous avez encore besoin de l'utiliser quelle que soit votre ROUTEUR ou de votre CONTRÔLEUR (même dans le basecontroller si besoin).
À mon avis, en utilisant le filtre dans vos ITINÉRAIRES est le meilleur endroit pour l'utiliser.
OriginalL'auteur Half Crazed
Simplement ajouter ceci à la
BaseController
.Cela, ajoutez le CSRF filtre à tous les post, put, patch et supprimer la demande.
OriginalL'auteur Victor