Symfony 2 Ajouter Jeton CSRF lors de l'utilisation d'un formulaire sans classe
Tout d'abord, je suis une complète noobie avec Symfony 2. La question semble simple, si j'essaie de le mettre en contexte dans pourquoi et comment j'ai besoin de ce il va commencer à devenir source de confusion.
En essence, j'ai créé un formulaire, que j'ai manuellement le processus, de valider et d'insérer à l'aide de la Doctrine etc. Je suis création manuelle de la forme au sein d'un contrôleur de l'action (il est construit dynamiquement à partir de valeurs récupérées à partir d'un autre objet). Je suis en supposant qu'il peut-être de meilleures façons de le faire, mais comme je suis nouveau sur Symfony et les jours de chalutage sur le net, je ne vois pas de solutions à ce que je dois faire.
Donc je ne suis pas simplement un formulaire à l'encontre d'une classe ou d'une entité etc et je vais donc manuellement besoin d'ajouter un jeton CSRF ou une sorte de protection.
Dans des circonstances normales, vous devez créer le FormType et de configurer des options par défaut de l'avoir csrf_protection. Alors qu'un simple cas de:
{{ form_widget(form._token) }}
et le jeton csrf est là.
Que je suis élaboration dynamique de la forme, je ne suis pas sûr de savoir comment je peux créer manuellement un jeton csrf pour ma forme. Quelqu'un avait une expérience de la création de formes sans classe et l'ajout de la protection csrf?
Cordialement
Paul Pounder
OriginalL'auteur Paul Pounder | 2013-04-21
Vous devez vous connecter pour publier un commentaire.
Dans (mon) des circonstances normales, vous créez un formulaire et ne pas configurer spécifiquement CSRF - il se fait automatiquement, et vous utilisez
form_rest(form)
ouform_end(form)
pour rendre le caché d'entrée avec jeton CSRF. Je ne crois pas que c'est toute différente pour une forme qui n'est pas soutenue par un modèle.Merci les gens. Marqué ce en tant que correcte.
Et puis-je générer un CSRF Token quand je pas utiliser le formulaire de Symfony-builder? (Parce que j'aime construire de mes formulaires manuellement)
Gigala: C'est un tout autre sujet et appelle à une nouvelle question 😉
OriginalL'auteur dylan oliver
Je pense que ce que vous cherchez est la suivante :
Par exemple:
source
Pour valider ce jeton à partir d'un contrôleur, vous pouvez le faire:
Pour simplifier vérifier le jeton sur Symfony 2.6 ou supérieur
c'est une sorte de filtre pour votre jeton csrf de sorte que seuls les contrôleurs/les pages qui connaissent cet identifiant permettra de valider votre jeton csrf. Plus d'infos: api.symfony.com/2.3/Symfony/Component/Form/Extension/Csrf/...
merci de m'aider @Żabojad
OriginalL'auteur Żabojad
Connexion entre la Forme Type et token:
et dans la Forme Type:
csrf_token_id
au lieu deintention
dans les options par défaut. Découvrez lien ci-dessous pour plus d'informations. Vous pouvez également passercsrf_protection
etcsrf_field_name
, comme ils le sont par défaut configurés dans le même maner comme vous pouvez le voir ci-dessus. symfony.com/doc/current/form/csrf_protection.htmlOriginalL'auteur d3uter