Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-02-2010 22:19:18

epasquier
Membre
Date d'inscription: 12-01-2009
Messages: 15

Conseil sur Zend_Filter_StripTags

Bonjour,

Dans tous mes Forms ou lecture de paramètres GET, j'utilise le filtre Zend_Filter_StripTags :
Exemples:

Code:

    $champLibelle->setLabel('Libellé')
             ->setRequired(true)
             ->addFilter('StringTrim')
             ->addFilter('StripTags')
             ->addValidator('NotEmpty', true);

    $filter = new Zend_Filter_StripTags();
    $Lvalue = $filter->filter($this->_request->get('value'));

Hélas je viens de m'apercevoir que celui-ci filtre les caractères ">" et "<" en supprimant aussi une partie du texte.

Code:

"signe > superieur signe < inferieur" devient "signe  superieur signe "

Que me conseillez-vous d'utiliser pour filtrer les "injections de code" tout en ne supprimant pas ces caractères ?

A noter que remplacer les caractères par &gt; et &lt; fonctionne, mais je peux difficilement demander aux utilisateurs de le faire ...

D'avance, merci.
Eric.

Hors ligne

 

#2 04-02-2010 22:32:08

Blount
Membre
Date d'inscription: 23-06-2009
Messages: 98
Site web

Re: Conseil sur Zend_Filter_StripTags

Pourquoi enlèves-tu les balises ?
Il ne faut "jamais" modifier les données des utilisateurs. Si tu veux afficher des données pouvant contenir des balises HTML ou autres utilise l'aide de vue Escape (dans une vue : $this->escape('<truc>')).

Hors ligne

 

#3 04-02-2010 22:58:33

epasquier
Membre
Date d'inscription: 12-01-2009
Messages: 15

Re: Conseil sur Zend_Filter_StripTags

Je ne veux pas spécialement permettre des balises HTML;
je veux juste m'assurer que l'on ne risque pas de faire de "l'injection de code" à travers les paramètres.

Avant d'utiliser Z.F.,  je faisais htmlspecialchars() sur tous les champs.
Simplement, le filtre StripTags est celui utilisé dans de nombreux exemples, donc j'ai pensé qu'il faisait tout comme je voulais.

Je ne dois pas être le seul, et j'aimerais bien savoir quel(s) filtre(s) standards vous utilisez.

Merci,
Eric.

Hors ligne

 

#4 05-02-2010 07:44:46

Blount
Membre
Date d'inscription: 23-06-2009
Messages: 98
Site web

Re: Conseil sur Zend_Filter_StripTags

Personnellement, je n'utilise aucun filtre.

Tu peux développer "l'injection de code" parce que c'est assez vague. Tu fais référence à HTML, SQL, PHP ou autre chose ?
S'il met du PHP, en théorie, aucun souci tant que tu ne fais pas d'"eval", de require, etc. avec les données.
Si c'est du HTML, un simple "escape" suffit à transformer certains caractères (>, <<, etc.) en entité, ce qui rend l'HTML ainsi que le javascript comme du simple texte.
Pour le SQL, si tu utilises Zend_Db, tu ne devrais en théorie n'avoir aucun problème si tu lis bien la doc.

StripTags n'est utile que si tu veux autoriser l'utilisateur à afficher du contenu HTML, ce qui te permet de filtrer les balises autorisées. Mais dans ce cas HTMLPurifier peut être plus adapté.

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