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

Bibliothèques et frameworks PHP Discussion :

Yii ? ou Zend Framework


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    japais
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : japais

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Yii ? ou Zend Framework
    Svp on m'a imposé d'apprendre Yii Framework ( php ) alors que je suis begginer en Zend Framework
    est ce que ça mérite que j’abandonne Zend pour Yii?
    ou vaut mieux que je révolte? ^^
    j'aimerai bien avoir l'opinion des gens qui ont utilisé ces deux framework ou un des deux

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Je ne connais que Zend framework 1.* je n'ai pas encore utilisé Zend Framework 2, (courbe d'apprentissage trop importante et surtout non compatibilité avec nos applications Zend F 1

    Zend Framework a des avantages et des inconvénients, ayant developpé mon propre framework (hebergé ici) je vais paraitre subjectif, mais: si tu veux continuer sur Zend Framework, il faut que tu apprennes à utiliser sa version 2 qui est le futur de leur framework.
    C'est un framework connu et reconnu par les entreprises en grande partie grâce à sa filiation avec Zend

    Yii je connais moins, je trouve des incohérences sur leur site:
    Security comes as standard with Yii. It includes input validation, output filtering, SQL injection and Cross-site scripting prevention.
    Vs le premier exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo CHtml::encode($_GET['tag']); ?>
    Qui fait appel à cette methode dans web/helpers/CHtml.php ligne 96
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static function encode($text)
    	{
    		return htmlspecialchars($text,ENT_QUOTES,Yii::app()->charset);
    	}
    La methode encode est censé protéger du xss
    https://www.owasp.org/index.php/Inte..._always_enough

    Personnellement j'ai l'habitude de voir mes applications passé entre les mains de cabinet d'audit de sécurité depuis plusieurs années, et j'ai inclut toutes leurs recommandations au sein de mon framework pour le voir passer avec succès les tests d'intrusions.
    Les développeurs de Yii ne doivent pas faire auditer leurs applications
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par imikado Voir le message
    La methode encode est censé protéger du xss
    Ce n'est pas cette méthode qui doit protéger du XSS, elle encode simplement une chaine de caractère en HTML. Voir la doc:
    Encodes special characters into HTML entities. The application charset will be used for encoding.
    Pour afficher du code envoyé par un utilisateur il existe la méthode CHtmlPurifier::purify() :
    Purifies the HTML content by removing malicious code.
    Cependant, tout contenu assigné directement aux attributs d'un modèle est passé à la moulinette avant d'être exploité.

    donc si on fait $model->nom = $_GET['nom'];
    puis $model->save();
    Aucun code non désiré ne devrait passer.

    La documentation est vraiment bien faite, et c'est bien spécifié s'il peut y avoir des problèmes d'injection pour certains scripts.
    Je travaille depuis 4 ans sur Yii et c'est vraiment un framework incroyable, sans limites, propre et cohérent. Je n'ai jamais été bloqué par cet outil, même sur de très gros projets. Il faut, comme pour tout framework un temps de prise en main, créer ses propres outils et extensions de classes de Yii. Mais une fois que son environnement est bien ficelé, c'est très rapide et agréable de bosser dessus.
    La communauté est aussi très active, le framework régulièrement mis à jour.

    Bref, pour ceux qui veulent s'y mettre, je ne peux que les encourager.

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par ClemLamb Voir le message
    Ce n'est pas cette méthode qui doit protéger du XSS, elle encode simplement une chaine de caractère en HTML. Voir la doc:


    Pour afficher du code envoyé par un utilisateur il existe la méthode CHtmlPurifier::purify() :
    Je répète ce qui est indiqué sur leur site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo CHtmlPurifier::encode($_GET['tag']); ?>
    on est bien d'accord que $_GET tag est potentiellement dangereux ils devraient sur leur site marquer


    [QUOTE=ClemLamb;7721668]
    Cependant, tout contenu assigné directement aux attributs d'un modèle est passé à la moulinette avant d'être exploité.

    donc si on fait $model->nom = $_GET['nom'];
    puis $model->save();
    Aucun code non désiré ne devrait passer.[/CODE]
    C'est la dessus que je suis curieux de savoir ce qu'ils font, quel caractère interdire ? comme se proteger avec ce framework du xss, null byte par exemple

    J'ai cherché cette methode et j'ai trouvé tout ce code qui est appelé par champ "sécurisé"
    Code php : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
           /**
         * Filters an HTML snippet/document to be XSS-free and standards-compliant.
         *
         * @param $html String of HTML to purify
         * @param $config HTMLPurifier_Config object for this operation, if omitted,
         *                defaults to the config object specified during this
         *                object's construction. The parameter can also be any type
         *                that HTMLPurifier_Config::create() supports.
         * @return Purified HTML
         */
        public function purify($html, $config = null) {
     
            // :TODO: make the config merge in, instead of replace
            $config = $config ? HTMLPurifier_Config::create($config) : $this->config;
     
            // implementation is partially environment dependant, partially
            // configuration dependant
            $lexer = HTMLPurifier_Lexer::create($config);
     
            $context = new HTMLPurifier_Context();
     
            // setup HTML generator
            $this->generator = new HTMLPurifier_Generator($config, $context);
            $context->register('Generator', $this->generator);
     
            // set up global context variables
            if ($config->get('Core.CollectErrors')) {
                // may get moved out if other facilities use it
                $language_factory = HTMLPurifier_LanguageFactory::instance();
                $language = $language_factory->create($config, $context);
                $context->register('Locale', $language);
     
                $error_collector = new HTMLPurifier_ErrorCollector($context);
                $context->register('ErrorCollector', $error_collector);
            }
     
            // setup id_accumulator context, necessary due to the fact that
            // AttrValidator can be called from many places
            $id_accumulator = HTMLPurifier_IDAccumulator::build($config, $context);
            $context->register('IDAccumulator', $id_accumulator);
     
            $html = HTMLPurifier_Encoder::convertToUTF8($html, $config, $context);
     
            // setup filters
            $filter_flags = $config->getBatch('Filter');
            $custom_filters = $filter_flags['Custom'];
            unset($filter_flags['Custom']);
            $filters = array();
            foreach ($filter_flags as $filter => $flag) {
                if (!$flag) continue;
                if (strpos($filter, '.') !== false) continue;
                $class = "HTMLPurifier_Filter_$filter";
                $filters[] = new $class;
            }
            foreach ($custom_filters as $filter) {
                // maybe "HTMLPurifier_Filter_$filter", but be consistent with AutoFormat
                $filters[] = $filter;
            }
            $filters = array_merge($filters, $this->filters);
            // maybe prepare(), but later
     
            for ($i = 0, $filter_size = count($filters); $i < $filter_size; $i++) {
                $html = $filters[$i]->preFilter($html, $config, $context);
            }
     
            // purified HTML
            $html =
                $this->generator->generateFromTokens(
                    // list of tokens
                    $this->strategy->execute(
                        // list of un-purified tokens
                        $lexer->tokenizeHTML(
                            // un-purified HTML
                            $html, $config, $context
                        ),
                        $config, $context
                    )
                );
     
            for ($i = $filter_size - 1; $i >= 0; $i--) {
                $html = $filters[$i]->postFilter($html, $config, $context);
            }
     
            $html = HTMLPurifier_Encoder::convertFromUTF8($html, $config, $context);
            $this->context =& $context;
            return $html;
        }
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

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. Zend Framework et URL Rewriting
    Par ToxiZz dans le forum MVC
    Réponses: 1
    Dernier message: 19/04/2006, 11h25
  3. [PHP5] PEAR vs ZEND Framework
    Par wdionysos dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/04/2006, 09h51
  4. Réponses: 3
    Dernier message: 02/04/2006, 19h38

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