[Symfony 1.4] CSRF Protection ?
3 messages
• Page 1 sur 1
-

dorian53 - WRInaute passionné

- Messages: 2215
- Inscription: 10 Avr 2005
[Symfony 1.4] CSRF Protection ?
Bonjour,
Quelqu'un peut-il m'expliquer le fonctionnement du jeton de sécurité dans les formulaires de Symfony ?
Sur un formulaire je réalise un
Mon secret est une constante, je retrouve donc à chaque fois le même jeton.
Il n'y a donc aucun intérêt.
Si je renseigne un SECRET aléatoire, je suis par la suite incapable de valider le formulaire.
Quelle étape ai-je manqué ?
Merci,
Dorian
Quelqu'un peut-il m'expliquer le fonctionnement du jeton de sécurité dans les formulaires de Symfony ?
Sur un formulaire je réalise un
- Code: Tout sélectionner
$this->addCSRFProtection(SECRET)...
Mon secret est une constante, je retrouve donc à chaque fois le même jeton.
Il n'y a donc aucun intérêt.
- Code: Tout sélectionner
<input type="hidden" name="monform[_csrf_token]" value="nynid37bcf0bd45484512e04ed8e" id="monform__csrf_token" />
Si je renseigne un SECRET aléatoire, je suis par la suite incapable de valider le formulaire.
Quelle étape ai-je manqué ?
Merci,
Dorian
-

Julia41 - WRInaute passionné

- Messages: 1765
- Inscription: 31 Aoû 2007
Re: [Symfony 1.4] CSRF Protection ?
Normalement ton secret doit être fait par "session".
Je ne connais pas du tout symfony (je trouve ça trop lourd, comme Zend) mais tu créés ton SECRET avant le formulaire, durée de validité de 10/15 minutes par exemple, puis tu post, tu check ton jeton, s'il est bon, tu dis "OK" et après tu destroy ta session.
Personnellement j'insère pour chaque user une chaine en sha1 dans la base de données.
Après pour chaque formulaire, j'utilise toujours le jeton qui fait:
Le SALT étant commun à tout le site.
Voilà, je connais pas trop l'usage que fait symfony de ce token mais à mon avis ils attendent un truc unique à chaque formulaire et à chaque user (une var de session, une var de cookie).
Je ne connais pas du tout symfony (je trouve ça trop lourd, comme Zend) mais tu créés ton SECRET avant le formulaire, durée de validité de 10/15 minutes par exemple, puis tu post, tu check ton jeton, s'il est bon, tu dis "OK" et après tu destroy ta session.
Personnellement j'insère pour chaque user une chaine en sha1 dans la base de données.
Après pour chaque formulaire, j'utilise toujours le jeton qui fait:
- Code: Tout sélectionner
<input type... value="<?php echo sha1('un code unique à ce formulaire genre le id' . $user['csrf'] . SALT'); ?>" />
Le SALT étant commun à tout le site.
Voilà, je connais pas trop l'usage que fait symfony de ce token mais à mon avis ils attendent un truc unique à chaque formulaire et à chaque user (une var de session, une var de cookie).
-

dorian53 - WRInaute passionné

- Messages: 2215
- Inscription: 10 Avr 2005
Re: [Symfony 1.4] CSRF Protection ?
Bonjour Julia et merci, je vais préciser mon problème qui est bien spécifique à Symfony.
Comment faire abstraction de $request->checkCSRFProtection() pour valider un jeton de protection ?
J'utilise Symfony en tant que librairie et non framework, je ne possède donc pas le package "request".
Je parviens bien à créer le jeton que j'ai placé dans le construct de mon form.
En revanche, j'attends vos conseils pour la validation du jeton.
J'ai pensé réaliser cette étape au niveau du bind() ?
Que faire si le jeton est valide ? Jouer sur le validatorSchema du token ?
Merci,
Dorian
Comment faire abstraction de $request->checkCSRFProtection() pour valider un jeton de protection ?
J'utilise Symfony en tant que librairie et non framework, je ne possède donc pas le package "request".
Je parviens bien à créer le jeton que j'ai placé dans le construct de mon form.
- Code: Tout sélectionner
$token = uniqid(rand());
$_SESSION['token'] = $token;
$this->addCSRFProtection($token);
En revanche, j'attends vos conseils pour la validation du jeton.
J'ai pensé réaliser cette étape au niveau du bind() ?
Que faire si le jeton est valide ? Jouer sur le validatorSchema du token ?
Merci,
Dorian
3 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- 3ème partie de l'article .htaccess : les réécritures conditionnelles - 21-01-2003
- Les programmes d'Arte bientôt sur YouTube - 02-09-2010
- Google Puffin : Google cherche sur votre disque dur - 21-05-2004
- Le nouveau statut de la presse en ligne en France - 14-04-2009
- Google lance le service Latitude - 05-02-2009
- Yahoo poursuit les propriétaires de 1763 noms de domaine - 23-06-2006
- Actualité du référencement pendant l'été 2009 - 31-08-2009
- La Terre vue du ciel dans Google Earth : photos de Yann Arthus-Bertrand - 15-12-2007
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
