Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/06/2011, 10h11   #1
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 43
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2006
Messages : 43
Points : 36
Points : 36
Par défaut zend framework et protection CSRF

Bonjour,
J'aimerais savoir comment vous protégez vos applications utilisant le Zend Framework contre les failles de sécurité de type CSRF, en particulier pour les requêtes GET. Pour les requêtes POST je sais que le ZF permet d'utiliser le Zend_Form_Element_Hash mais pour les requêtes GET j'ignore si il existe un moyen fourni par le ZF.
Merci.
nicolas2117 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 13h01   #2
Membre confirmé
 
Avatar de Nighty
 
Homme Lucas CORBEAUX
Chef de projet MOE
Inscription : février 2003
Messages : 158
Détails du profil
Informations personnelles :
Nom : Homme Lucas CORBEAUX
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet MOE

Informations forums :
Inscription : février 2003
Messages : 158
Points : 291
Points : 291
Bonjour,

Pas de solution "toute prête" à ma connaissance, même si je peux me tromper.

Je te recommande toutefois d'orienter ta recherche sur l'objet Zend_Controller_Request_Http : tu devrais pouvoir sans trop de mal contrôler les referers et court-circuiter l'affichage soit depuis les contrôleurs et actions "sensibles", soit depuis un Zend_Controller_Plugin si tu veux effectuer un contrôle global pour toute l'application.

Tu peux aussi paramétrer Zend_Session pour limiter la validité de la session à un certains nombre de "hops", et forcer une ré-identification au delà. Tu peux définir cette valeur pour chaque Zend_Session_Namespace, du coup ça te permet de vraiment limiter l'accès aux seules données sensibles sans allourdir les autres moins critiques.

Et comme tu le souligne pour les requêtes POST, Zend_Form fournit le Zend_Form_Element_Hash.

Bon, je suis très loin d'être un expert dans ce domaine, mais j'espère que ça aide un peu.
Nighty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 17h24   #3
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 43
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2006
Messages : 43
Points : 36
Points : 36
Merci de ta réponse. Je vais jeter un oeil à ça dans la doc.
C'est dommage qu'il n'y a pas de solution standard, surtout pour un problème comme ça...
Sinon symfony utilise une méthode pas mal quand tu clique sur ton lien un formulaire avec un token est envoyé grâce à du javascript, au final c'est une requête POST et donc pour le ZF je pourrais utiliser Zend_Form_Element_Hash.
nicolas2117 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 14h54   #4
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 43
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2006
Messages : 43
Points : 36
Points : 36
Citation:
Je te recommande toutefois d'orienter ta recherche sur l'objet Zend_Controller_Request_Http : tu devrais pouvoir sans trop de mal contrôler les referers et court-circuiter l'affichage soit depuis les contrôleurs et actions "sensibles", soit depuis un Zend_Controller_Plugin si tu veux effectuer un contrôle global pour toute l'application.
Il semblerait que le referer ne soit pas suffisant pour éviter les failles CSRF
nicolas2117 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 15h01   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par nicolas2117 Voir le message
Il semblerait que le referer ne soit pas suffisant pour éviter les failles CSRF
Oui, surtout quand le navigateur n'envoie pas le referer, de plus que c'est une entete modifiable
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 20h50   #6
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Une bonne pratique serait de n'utiliser les appels GET que pour de la consultation.
Toute modification devant être effectuée au moyen d'un formulaire, donc une requête POST avec le Zend_Form_Element_Hash.

Une méthode alternative est d'utiliser un token dans les headers et de l'utiliser de la même manière que le Zend_Form_Element_Hash. Mais rien de tout prêt pour cette technique...
__________________
  • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
  • Merci d'utiliser les balises de code (# dans l'éditeur)
  • Si votre problème est réglé, merci d'utiliser le bouton
S.N.A.F.U
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h14.


 
 
 
 
Partenaires

Hébergement Web