|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 5 ![]() |
Bonjour,
Je suis en train de concevoir un site sur la base de Zend Framework avec une page d'identification dont l'adresse est http://site/ Le site a l'arborescence suivante : application -->model -->view -->controller Zend framework -->zend Après une authentification réussi l'utilisateur se retrouve sur son espace à l'adresse suivante : http://site/home/ Jusqu'ici tout va bien. Le problème c'est qu'il est possible d'accèder directement à son espace sans s'authentifier en tapant directement "http://site/home/" Comment interdire ce type de pratique et pallier à cette faille de sécurité? j'ai pensé à une gestion par session et redirection mais là j'ai un probléme de conception. Dois mettre le contrôle au niveau de l'index? des controllers? ou des pages dans view? En gros comment faire? Merci pour votre aide @+ |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Développeur Web Inscription : septembre 2006 Messages : 215 ![]() |
Salut,
je pense qu'il faudrait que dans ton contrôleur HomeAction, tu vérifies si l'utilisateur a bien été logger, dans le cas contraire tu le rediriges. il faudra sans doute que tu utilises les sessions dans ce cas là sahid |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : mars 2007 Messages : 5 ![]() |
ok.
Si je comprends bien tu me proposes de faire une vérification au niveau de chacunes des fonctions qui composent les controllers?! Comment optimiser le code? C'est sûr que si je le faisais au niveau de l'index, je n'aurais qu'à le faire une fois Ci-dessous le code d'un de mes controllers : Code php :
Aurais tu une proposition? |
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 3 ![]() |
Bonjour,
Pour créer un système d'authentification avec le Zend Framework je te propose plutôt d'utiliser Zend_Auth : http://framework.zend.com/manual/en/zend.auth.html Si tu veux pouvoir gérer différents niveaux de droits d'accès aux informations tu peux aussi utiliser Zend_Acl : http://framework.zend.com/manual/en/zend.acl.html Ensuite pour bien intégrer le système d'authenficiation tu peux utiliser le système de plugin du Zend_Controller_Front pour vérifier si tel ou tel controller et tel ou tel action a le droit d'être vu par tel utilisateur. L'utilisation d'un plugin t'évitera de coller ton code de vérification un peu partout dans tes controlleurs. Tu pourra trouver un petit exemple ici : http://devzone.zend.com/node/view/id/1665 |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 5 ![]() |
Ca me paraît un peu compliqué tout ca alors que je veux juste que l'utilisateur passe avant tout par une authentification (login/mdp) pour accèder à son contenu et non pas directement en mettant une url qu'il aurait bookmarker par exemple.
La gestion des droits fera partie d'une prochaine étape. Merci pour les liens quand meme mais mon probleme reste entier. |
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : février 2007 Messages : 475 ![]() |
Sans passer par un plugin, tu pourrais simplement vérifier si le user est authentifié dans la method init() de ton controller Home (callée juste après le constructeur).
Autre solution, dans la method preDispatch() du Home controller, tu peux modifier le statut 'dispatched' de la requête et ainsi contourner l'appelle de l'action du controller (et repartir sur n'importe quel controller). Si plusieurs de tes controllers ont besoins d'un user authentifié, tu peux créer une hierarchie de controllers (un seul controller parent redéfinirait preDispatch() ou init()) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com