Codeigniter CSRF-comment ça marche
récemment j'ai découvert les attaques CSRF et j'ai été heureux de découvrir que la protection CSRF a été ajoutée à Codeigniter v 2.0.0.
j'ai activé la fonctionnalité et vu qu'un caché d'entrée avec un jeton est ajouté dans les formes et je suppose qu'il stocke le jeton dans une session. Sur les requêtes POST, est-ce que CI compare automatiquement les tokens ou dois-je le faire manuellement?
3 réponses
le jeton CSRF est ajouté au formulaire comme entrée cachée seulement lorsque le form_open()
la fonction est utilisée.
un cookie avec la valeur du jeton CSRF est créé par la classe Security, et régénéré si nécessaire pour chaque requête.
Si $_POST
les données existent, le cookie est automatiquement validé par la classe Input. Si le token affiché ne correspond pas à la valeur du cookie, CI affichera une erreur et ne traitera pas le $_POST
données.
Donc en gros, c'est tout automatique - tout ce que vous avez à faire est d'activer dans votre $config['csrf_protection']
et form_open()
fonction pour votre formulaire.
J'ai trouvé un bon article qui l'explique très bien: https://beheist.com/blog/csrf-protection-in-codeigniter-2-0-a-closer-look.html
lorsque la classe de sécurité activée par la protection csrf vérifie automatiquement ce token (il compare le token POST avec le token COOKIE)
Consulter ce Lien -- utilisé des jetons CSRF en utilisant l'aide de formulaire ou manuellement
l'article explique comment travailler avec les Tokens CSRF dans
- formulaire à ouvrir avec le helper form
form_open()
function - dans les formes ajax
- formulaires de sérialisation ajax/jquery
Cet article explique également comment "Désactiver CSRF pour cetain URL(Qui est utilisé comme un webservice url)"