IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

securité sur zend (discussion et avis)


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Par défaut securité sur zend (discussion et avis)
    Bonjour,
    Je post ce message dans l'espoir de recueillir des avis intéressant dans le domaines de la sécurité avec le zend framework. J'ai commencé à développé avec zend il n'y a pas si lgt et je pense que point de vue sécurité, mon code n'est pas très propre. Voici quelques points sur lesquelles je buche lorsque je code :
    - Lors de l'insertions dans la base de donnée, j'insère les données sous forme brute ; je fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $table = new Table();
    $row = $table->createRow;
    $row->champ1 = form->champ1->getValue();
    $row->save()
    y à t-il une faille à ce niveau ou bien le zend s'occupe de protégé la base de donnée ?
    - Y-a-t-il moyen de créer ses propres validateurs ? par exemple, je voudrai autorisé les caractère alphanumérique, les espacement ET certains caractère spéciaux que je définirais moi-même (é,@,è,à,ê, etc.)
    - lors de l'affichage dans la vue, est-il possible de créer un plugin ou quelques chose dans le genre qui exécuterai un filtre sur toutes les variables que le controller passe à la vue. En fait, j'ai découvert récemment que dans la vue, il suffisait de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->escape($this->variable);
    pour appliqué un filtre htmlentities... le problème c'est que le code chez moi est déja fait et cela me prendrai des heures à tout changer...n'y a-t-il pas moyen de généralisé cela ? j'ai essayer en faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->escape($this->content());
    dans mon layout principale mais à ce moment, même les tableaux sont filtré et j'ai les balises afficher sous forme de caractère html :s...

    voila, j'espère que ce post sera riche en avis et renseignement qui pourront par la même aider beaucoup de personne paumée comme moi sur le net

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Non, tu ne peux pas faire de plugin pour la vue car toutes les variables ne sont pas échappées de la même manière. Par exemple, si tu construis une URL avec des paramètres, il ne faut pas appeler $this->escape() sur ces variables.

    Concernant la protection des variables, Zend_Db s'occupe tout seul de la protection de la BDD. Si tu utilises des formulaires, tu devrais utiliser des validateurs et des filtres sur chacun des champs, ce qui apporte un niveau supplémentaire de sécurité

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Par défaut
    Re bonjour et merci pour ta réponse rapide.
    En fait, je trouve également que les validateurs sont très utile mais malheureusement, je trouve que certains validateurs sont manquant... par exemple, je trouve bien pratique les validateur de type alphanumérique(avec espacement) dans le nom, prénom(limite) ; les types inarray dans les champ select ou multicheckbox, les type régex pour les champs spéciaux comme le numéro de téléphone, date etc. mais ce que je trouve dommage c'est qu'il n'y a pas vraiment de validateur pour les champs text, description, ou certains caractère devraient être autorisé et d'autres pas... c'est pourquoi j'en reviens à demander finalement si il n'y a pas moyen de créer sont propre validateur ou on pourrait refuser les caractère comme <, >, \, etc et accepter les caractère alphanumérique, espacement, é, è, à, etc...
    ps : pour les filtre, est-il préférable de faire un html entities avant l'insértion dans la base de donéne ou lors de l'affichage ?
    Merci de vos réponses

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Bien sûr que tu peux faire ton propre validateur, d'ailleurs il me semble que c'est expliqué dans la doc.
    Concernant le moment d'appeler htmlentities, je te suggère de faire une recherche sur nos forums car la question a été posée une paire de fois...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Par défaut
    yop
    salut, c'est vrai que j'ai chercher un peu et en fait yavai pas de quoi en fait tout un plat lol je me rend compte que c'était un post un peu facile sorry :s pour me faire pardonner voila le petit bout de code que j'ai fait sur le validateur, ca vole pas très haut mais bon, ca pourrat ptête aider des gens
    merci encore et a ++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    class DescValidator extends Zend_Validate_Abstract
    {
    	const MSG_CARACT = 'msgCaract';
     
    	protected $_messageTemplates = array(
    		self::MSG_CARACT => "'%value%' contient des caractères illégaux : "
    	);
     
    	public function isValid($value)
    	{
    		$this->_setValue($value);
     
    		$valueF = ereg_replace('[^- [:alnum:] , é è ç à ù â ê î ô û ä ë ï ö ü _ [:space:]]', '', $value);
     
    		if ($value != $valueF){
    			preg_match_all("/[^- a-z A-Z 0-9 , é è ç à ù â ê î ô û ä ë ï ö ü _ \s]/", $value,$matches);
    			$error = "";
    			$tab = $matches[0];
    			foreach($tab as $key=>$value)
    				$error = $error."'$value'".(isset($tab[$key+1])?' , ':'');
    			$this->setMessage("Certains caractères ne sont pas autorisé : ".$error);
    			$this->_error();
    			return false;
    		}
     
    		return true;
    	}
     
    }

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    ereg_replace
    Tu devrais absolument éviter d'utiliser les fonctions ereg*() puisqu'elles ont été complètement supprimées du core de PHP... Utilise preg_*() à la place.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Votre avis sur Zend Framework ?
    Par __fabrice dans le forum Zend Framework
    Réponses: 79
    Dernier message: 28/11/2009, 18h09
  2. Votre avis sur Zend Studio for Eclipse 6.1 ?
    Par Yogui dans le forum Eclipse PHP
    Réponses: 5
    Dernier message: 06/05/2009, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo