MVC session et sécurité

Rechercher

MVC session et sécurité

Par Vini  -  8 reponses  -  Le 13/07/2009 19:24  -  Editer  - 

Salut à toi Emacs !

Ca faisais quelque temps que j'etais pas venu ! mais je garde toujours un oeil sur apprendre-php

plein de bonne ressource et d'inspiration !

Je viens ici à fin d'avoir un avis sur la session dans le MVC suite

à ce que tu m'avais conseiller en terme de session !

je créer ma session comme conseiller dans le constructeur de l'user:

$user = new User(new Session());

 

j'ai créer dans user une methode logon comme ceci:

 

public function logon($login, $password)  {    $this->setLogin($login);    $this->setPassword($password);     return MYSQLUser::logon($this);  }

si mysql trouve pas ça renvoie false sinon l'id de l'user

je voulais savoir dans un souçi de sécurité ou il etait le mieux de mettre l'objet user sachant que

j'en ai besoin par exemple dans la base de donné pour récupérer l'id de l'user pour une session plutôt que de le serializé !

j'ai pensé à le mettre dans la superClass AppController puis faire des methodes dans user pour les droits et je récupèrer ces méthodes en fonction des pages et des liens pour autorisé ou pas l'acces !

Je dois aussi autorisé la session d'entrée sur le site mais sans login pour suivre le visiteur !

j'ai aussi créer une table *user *et *privilèges *avec des niveaux d'accès differents

bref j'aurais besoin qu'on m'eclaire la dessus car je veux proteger aux mieux ma partie backoffice !

Merci ! ++ Vincent

 

Réponses apportées à cette discussion

Par saturn1  -  Le 14/07/2009 05:08  -  Haut de page  - 

Pour moi...:

Je mettrais l'objet $user dans la session php.

Après tu peux créer une classe Context (ou sf m'inspire..)

et dedans une méthode statique getUser() qui retourne l'objet user.

 

Bonne chance!!

 
Par Vini  -  Le 14/07/2009 10:26  -  Haut de page  - 

Je connais pas symphony !

Quel est le but de la class Context et quel est l'interet par rapport à la methode précédente ?

je suis pas sur de mettre l'objet user dans l'objet session et les avis sont partagé ! mais peut etre as tu plus d'argument qui me permetrais de mieux comprendre se raisonnement ?

de plus j'aime pas mettre mon objet session en parametre de l'objet user , en Java ça m'aurais pas déranger car on peut faire de la surcharge de methode et constructeur mais la à chaque fois que je dois créer un user je dois le mettre en parametre ! j'aurais préférer dans une methode interne et appeler cette methode dans le constructeur ! enfin je sais pas si c'est la bonne methode

 
Par Emacs  -  Le 14/07/2009 13:48  -  Haut de page  - 

Hello,

La solution de Saturn1 d'utiliser un contexte est une première approche mais elle n'est pas du tout pratique. La classe Context (sfContext dans symfony) est en réalité un singleton qui contient tous les objets du coeur du framework (request, response, user, cache...). C'est donc un gros objet qui contient l'ensemble du contexte chargé pour la requête en cours. Le problème c'est que tous les objets sont chargés alors que l'on en a pas forcément besoin pour la requête en cours. De plus, le singleton rend les objets accessibles de n'importe où (cad dans le modèle, dans la vue, dans les contrôleurs...) ce qui peut s'avérer être une mauvaise pratique. Bref, l'utilisation d'une classe de contexte peut être une solution mais à ton problème mais c'est fortement déconseillé.

L'une des solutions idéales et plus élégante est d'avoir recours à un conteneur d'inversion de dépendance qui permet ainsi de charger les objets à la demande et d'éviter également l'utilisation d'un singleton de contexte. Fabien Potencier, le créateur de Symfony, a récemment développé un composant d'inversion de dépendance entièrement gratuit, testé et documenté que tu peux retrouver sur le site http://components.symfony-project.org/dependency-injection/. Ce site dévoile quelques autres composants utiles comme le composant sfYaml ou bien l'Event Dispatcher. Tous ces composants sont au coeur même du futur symfony 2, qui sera par ailleurs le framework le plus rapide et le plus performant ;)

++

Hugo.

 

 
Par saturn1  -  Le 14/07/2009 15:44  -  Haut de page  - 

HUm ~~ c'est intéressant!!

 

Mais il est prévu pour fin 2010 SF 1.2?

Merci

 
Par Emacs  -  Le 14/07/2009 16:00  -  Haut de page  - 

Tu veux dire sf 2 ? ^^

Symfony 2 sortira très certainement en début, voire courant 2010. Fabien prend le temps de le développer pour qu'il soit bien fait. En fait, Fabien commençait à travailler sur Symfony 2 bien avant même la sortie de symfony 1.0.

 
Par saturn1  -  Le 14/07/2009 16:37  -  Haut de page  - 

Hum c'est du lourd !! :p

Une sorte de jobeet est prévue en même temps que la sortie de 2.0?

 
Par Emacs  -  Le 14/07/2009 16:42  -  Haut de page  - 

Je n'en ai aucune idée...

 
Par Vini  -  Le 15/07/2009 10:16  -  Haut de page  - 

ok merci pour votre aides !

Je vais pas créer d'objet context car en effet ça pourrais etre lourd pour l'appli !

en revanche je penses que la solution pour ma session serai de créer un objet visiteur qui aurrai pour seul but de suivre le visiteur inconnu et un autre objet user qui pourrais se logué, ajouter modifier son compte !

après je vais me debrouillé pour trouver une solution efficace et securiser les lieus de façon optimal !

good day :D

 

 

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |