Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-12-2013 17:58:30

kanak09
Nouveau membre
Date d'inscription: 12-12-2013
Messages: 5

Modifier _getParam() contre failles XSS

Bonjour à tous,

J'utilise ZF dans mon appli, et je viens de me rendre compte que j'ai des failles XSS dans tous les champs envoyés, du genre "<script>alert("toto")</script>" et bien que je check côté client ce n'est pas suffisant. 
Maintenant que j'ai beaucoup de formulaire avec beaucoup de validation, je ne peux pas me permettre de checker  TOUS les paramètres côté serveur...

En test unitaire j'ai vu que $description = strip_tags($description); fonctionne très bien. Du coup j'aimerai faire ca pour tous mes paramètres.

Y a-t-il un moyen d'inclure cette fonction dans le _getParam ? ou bien une autre solution, pour m'éviter de checker tous les champs un par un...

Merci beaucoup.

Hors ligne

 

#2 12-12-2013 22:23:16

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: Modifier _getParam() contre failles XSS

Bonjour,

Je vais exposer un avis personnel ici, mais cette communauté est là pour aider les gens à utiliser les bonnes pratiques de développement avec Zend Framework, pas de faire n'importe quoi avec...

Idéalement, tu utilises des Zend_Form ou Zend\Form, et tu peux donc mettre des validateurs dessus. C'est la seule solution qui te permettra d'avoir des validations correctes.

Les validations côté clients sont juste utiles à titre indicatif (plus rapide), mais une des règles d'or en développement reste "Never trust user imput" (ne jamais croire les entrées de l'utilisateur)...

Hors ligne

 

#3 13-12-2013 14:38:20

kanak09
Nouveau membre
Date d'inscription: 12-12-2013
Messages: 5

Re: Modifier _getParam() contre failles XSS

Salut !

Merci pour ta réponse. Justement je sais bien que "Never trust user input" c'est pour ca que je m'attaque à la validation serveur. Et malheureusement non j'ai un fonctionnement du site un peu particulier et je n'utilise pas des Zend_Form.
Sur un modèle MVC, j'ai mes pages web qui appellent en ajax, tels des webservices, les actions côté serveur. Le côté serveur étant indépendant de mon côté client, voilà pourquoi je voulais une méthode commune à tous mes _getParam().

Si une autre solutions te viens à l'esprit, avant que je ne m'attaque un par un à tous mes champs côté serveur :-(
merci.

Hors ligne

 

#4 13-12-2013 14:57:41

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: Modifier _getParam() contre failles XSS

getParam est defini dans Zend_Controller_Action, tu peux donc etendre la classe Zend_Controller_Action et surcharger getParam.

Code:

[lang=php]
class Ton_Controller_Action extends Zend_Controller_Action {
    public function getParam(string $paramName, mixed $default = null) {
        $value = parent::getParam();
        // traitement
        return $value;
    }
}

Tu dois etre sur que ton traitement marche quelque soit le type de $value.

Ensuite, tu dois changer tous les Zend_Controller_Action par Ton_Controller_Action.

Hors ligne

 

#5 13-12-2013 16:01:30

kanak09
Nouveau membre
Date d'inscription: 12-12-2013
Messages: 5

Re: Modifier _getParam() contre failles XSS

Au top c'est une solution comme ca que je voyais, mais je pensais pas qu'on pouvait étendre le Zend_Controller_action sans péter la fonction initiale getParam, mais avec l'appel parent je comprends mieux !

En tout cas le strip_tags est valable pour tous mes paramètres donc pas de souci de ce côté là, ensuite j'ai après un traitement spécifique selon le type (integer, string...)

Merci beaucoup je vais essayer ce soir, et je poste ;-)

Dernière modification par kanak09 (13-12-2013 16:02:07)

Hors ligne

 

#6 13-12-2013 18:02:10

kanak09
Nouveau membre
Date d'inscription: 12-12-2013
Messages: 5

Re: Modifier _getParam() contre failles XSS

Je confirme, ca fonctionne au top ! Plus de souci d'html en input maintenant :-)

Merci

Hors ligne

 

#7 13-12-2013 18:03:21

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: Modifier _getParam() contre failles XSS

Je tiens a rappeler que c'est une solution d'"urgence", un cas particulier, pas une bonne pratique, et que maintenant que ca marche il va falloir oublier smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages