IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Plusieurs formulaires dans une page, CSRF attack detected [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 71
    Par défaut Plusieurs formulaires dans une page, CSRF attack detected
    Bonjour a vous,

    Encore une fois je rencontre un problème que je n'arrive pas a résoudre seul, il s'agit en faite d'une page contenant deux formulaires, le premier permet de créer un utilisateur, a partir du formulaire sfGuardRegisterForm (un peu surcharger en faite), le suivant est un formulaire permettant de se connecter directement si on possède déjà un compte utilisateur et là j'utilise encore une fois un formulaire existant dans sfGuardDoctrine : BasesfGuardFormSignin.
    Le premier formulaire est traité dans l'action appelante, le deuxième est traité par l'action dédié de sfGuardDoctrine prévue à cette effet.

    Le premier formulaire fonctionne correctement, le soucis provient du deuxième qui me génére un CSRF attack detected, or en utilisant le formulaire l'action de connection de base du plugin et en y insérant les mêmes informations cela fonctionne.

    Merci d'avance.
    Cordialement, Mickael

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Fonctionnement de la protection CSRF.

    Lors de l'initialisation du formulaire, form génère un tokenCSRF qui est envoyé avec le formulaire dans un champ caché. Au retour du formulaire, form (validation) vérifie que le tokenCSRF est présent et identique à celui de l'allé.

    Ceci permet de s'assurer que la réponse provient bien d'une personnes (d'un ordi) qui a reçu le formulaire d'origine (ou est arrivé à l'intercepter).

    Ton problème vient du fait que lors de la validation ton form n'a pas le bon token à valider et donc considère qu'il y a attaque.

    A mon avis ton ou tes templates doivent ce mélanger les pinceaux et tu dois avoir deux balises form incluent l'une dans l'autre au lieu de les avoir l'une après l'autre. Vérifies, corriges et tu seras bon.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 71
    Par défaut
    Bonsoir,

    Je te remercie, je connaissais déjà le fonctionnement du token c'est pourquoi cette erreur ma surprise, d'autant plus que mon fichier était bien constitué (structure HTML j'entends).
    J'ai trouvé la solution par hasard en faite, mon formulaire était une instance de BasesfGuardFormSignin, il a juste fallu que je le change en une instance de sfGuardFormSignin pour que cela fonctionne, du coup je ne comprend pas très bien car en visualisant le formulaire résultant de la classe BasesfGuardFormSignin il y avait bien le champs caché _csrf_token ce qui est normal car ce dernier est plus en amont dans l'arbre d'héritage.

    Peu-être pourras tu m'éclairer une fois de plus

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je ne vois pas très bien non.

    La solution me semble un peu trop miraculeuse pour être honnête.

    En effet, sauf erreur sfGuardFormSignin est juste un enfant sans modification de BaseGuardFormSignin. Instancier l'un où l'autre ne devrait rien changer.

    Et je ne vois pas comment ceci pourrait générer ton message d'erreur.

    Avantage de la pratique (ça marche mais on ne sait pas pourquoi) sur la théorie (ça ne marche pas mais on sait pourquoi).

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 71
    Par défaut
    Citation de Albert Einstein
    Au moins mon problème est résolu. merci a toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Plusieurs formulaires dans une page.
    Par lesanglier dans le forum Zend_Form
    Réponses: 2
    Dernier message: 23/11/2011, 00h46
  2. Problème avec plusieurs formulaires dans une page
    Par robindelhuxley dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 06/11/2008, 11h30
  3. [AJAX] Plusieurs formulaires dans une page?
    Par masseur dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/09/2008, 14h09
  4. Plusieurs formulaires dans une page?
    Par masseur dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 25/09/2008, 18h41
  5. plusieurs formulaires dans une page
    Par momo79379 dans le forum Langage
    Réponses: 2
    Dernier message: 24/03/2008, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo