2010-07-06 5 views
0

Sans cookies activés, un message de formulaire affichera ActionController::InvalidAuthenticityToken. Pour la plupart, je gère simplement l'exception avec un message indiquant que les cookies sont nécessaires pour se connecter à mon application.Traitement de la protection CSRF lorsque les cookies sont désactivés

Cependant, une chose que les utilisateurs de mon application peuvent faire est de créer du contenu à partager avec d'autres personnes, qui peuvent ou non se connecter (ce n'est pas obligatoire). De plus, ce contenu peut être protégé par mot de passe si le créateur choisit de le faire. C'est là que je rencontre des problèmes. Si c'est important, j'utilise le active_record_store comme session_store, et j'ai aussi config.action_controller.session.

Si un visiteur tente de déverrouiller un contenu protégé par mot de passe sans que les cookies ne soient activés, l'application lève l'exception et, du point de vue du visiteur, se bloque. J'aimerais pouvoir gérer cette situation, mais je ne sais pas trop comment. Je pourrais gérer l'exception et permettre au contenu d'être déverrouillé sans vérifier le cookie, mais si je le fais, je pourrais aussi bien ne pas protéger l'action contre CSRF parce que j'ouvrirais une vulnérabilité de toute façon, correct? Alternativement, je pourrais exiger que les cookies soient activés pour que le formulaire puisse être authentifié, mais il n'y a vraiment aucune raison d'exiger autrement des cookies dans cette situation. Si je comprends bien, si je désactive la protection sur cette action, j'exposerai seulement le contenu protégé de déverrouillage à une vulnérabilité de CSRF, mais si les cookies ne sont pas activés de toute façon, cela aurait-il de l'importance? Y a-t-il un moyen de protéger tout en gérant un manque de cookies?

Répondre

1

Je ne pense pas que ce soit un problème de le désactiver pour cette action. La protection contre la contrefaçon n'est vraiment utile que pour les actions qui ont un effet sur les données de votre application.

Questions connexes