Comment JSF 2.0 empêche CSRF
Je suis à la recherche de trucs que j'entends régulièrement que lors d'une webapp en JSF 2.0 vous êtes déjà protégé de crossite - script et - falsification de requête. L'extrait suivant d'un DONC, après les confirme:
En JSF 2.0 cela a été améliorée par l'utilisation d'une longue et forte valeur générée automatiquement, au lieu d'un plutôt prévisible de la valeur de la séquence et de ce fait en faisant un robuste CSRF de la prévention.
Quelqu'un peut-il fournir plus de détails à ce sujet? Comment fonctionne ce type de valeur empêcher CSRF? Merci!
source d'informationauteur Leanne
Vous devez vous connecter pour publier un commentaire.
Car il ne peut pas être deviné. Ainsi, l'attaquant ne peut pas coder en dur dans un champ caché dans une forme de l'attaque de site web (à moins que le site cible a une XSS trou et donc la valeur peut simplement être obtenu directement par XSS). Si la valeur n'est pas valide pour le JSF, alors le formulaire de soumission de l'attaque du site web ne sera tout simplement pas être traitées, mais au lieu de générer un
ViewExpiredException
. Veuillez noter que l'attaquant aurait encore besoin d'obtenir l'ID de session, de sorte qu'il peut être transmis par le biais dejsessionid
URL de l'attribut, donc, à l'origine de la "faiblesse" de la protection CSRF nécessiterait encore quelques XSS trou pour obtenir l'ID de session.Après tout, j'ai l'impression que vous ne comprenez pas du tout ce que CSRF est; la réponse est plutôt l'auto-expliquer si vous comprenez ce que CSRF est. Dans ce cas, veuillez consulter la question suivante: Suis-je sous risque d'attaques CSRF dans un formulaire POST qui ne nécessite pas que l'utilisateur soit connecté?
Une chose à retenir est que le CSRF-protection en JSF 2.0 est implicite et n'est valable que pour les requêtes POST.
Dans JSF 2.2 il n'y aura plus explicitement cette. Je l'ai brièvement expliqué ici: http://arjan-tijms.omnifaces.org/p/jsf-22.html