Créer et ajouter un validateur de session dans Zend Framework

Zend Framework possède divers mécanismes de sécurisation, parmi ceux-ci l’on trouvent les validateurs. Ces validateurs vérifie que la ou les données à validées sont valide et par là même sécurise celle-ci.

Dans notre cas nous allons nous intéresser aux sessions et plus particulièrement à la validation de celle-ci au moment de sont démarrage, ceci afin de, par exemple, empêcher le diminuer les possibilités de vol de celle-ci. Nous allons créer un validateur d’ip … (oui je sais y a moyen de passer outre, si on derrière un proxy gnagnagna …. mais ici c’est un exemple!).

Rermarque

Nous utiliserons Zend Framework en version 1.9.
De plus, nous allons créer notre librairie qui se nomera « Biblio ». Donc, il faudra penser à créer dasn votre répertoire library le dossier Biblio!

Les sessions

Tout d’abord mettons en place le mécanisme de session. Dans le Bootstrap nous ajoutons la méthode suivante :

protected function _initSession()
{
	Zend_Session::start();
}

Le validateur

Passons à la création proporement dite, créons le fichier /library/Biblio/Session/Validator/Ip.php, dont le contenu sera

setValidData((isset($_SERVER['REMOTE_ADDR'])? $_SERVER['REMOTE_ADDR'] : null));
	}
 
	/**
	 * Validate() - this method will determine if the ip matches the
	 * ip we stored when we initialized this variable.
	 *
	 * @return bool
	 */
	public function validate()
	{
		return ($this->getValidData() === (isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR'] : null));
	}
}
 
# EOF

Ensuite, il nous faut ajouter ce validateur à la session. Donc, on réédite le Bootstrap et on modifie la méthode _initSession() :

protected function _initSession()
{
	require_once 'Biblio/Session/Validator/Ip.php';
	Zend_Session::registerValidator(new Biblio_Session_Validator_Ip());
	Zend_Session::start();
}

conclusion

Encore une fois Zend nous montre sa puissance et sa facilité d’ajout de fonctionnalité. A noter qu’il existe déjà un validateur pour els session qui contrôle l’user agent (Zend_Session_Validator_HttpUserAgent()).
N’hésitez pas a en ajouter!

Similar Posts:

    None Found

2 thoughts on “Créer et ajouter un validateur de session dans Zend Framework

Comments are closed.