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?

17
demandé sur CyberJunkie 2011-06-05 21:46:19

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

32
répondu Wesley Murch 2018-03-01 14:26:44

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)

1
répondu Jarek Tkaczyk 2011-06-05 18:20:46

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)"

1
répondu anil 2018-03-01 14:27:54