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

Autres composants PHP Discussion :

Escape et balises Html


Sujet :

Autres composants PHP

  1. #1
    Membre du Club
    Inscrit en
    mars 2008
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 178
    Points : 56
    Points
    56
    Par défaut Escape et balises Html
    Bonjour, j'ai vu dans la doc de Zend qu'il fallait toujours échapper ses sorties dans les vues. Hors il s'avère que j'ai un système d'ajout de contenu qui utilise Ckeditor. Le contenu envoyé dans la base contient donc des balises HTML. Si je fais ceci dans ma vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $article[intro]; ?>
    J'ai bien mes balises <b>, <p>...etc interprétées.

    Par contre si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $this->escape($article['intro']);
    J'ai les balises qui s'affichent carrément sur ma page. Quelqu'un saurait-il à quoi c'est du ? J'ai été tenté de virer mes espace mais d'un côté j'ai lu sur la doc de Zend qu'il fallait les garder pour éviter les attaques. La question que je me pose alors c'est de savoir comment on rend un contenu qui contient des balises HTML ?

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : janvier 2005
    Messages : 1 278
    Points : 1 620
    Points
    1 620
    Par défaut
    Avant l'enregistrement en base, tu dois vérifier que la chaîne ne contient que des tags html autorisés (utilise les filters et les validators). Ton contenu étant sûr, tu peux donc l'afficher ensuite sans utiliser escape(). Cela doit rester une exception car le nettoyage de la chaîne peut être assez coûteux (expression régulières...) pour obtenir une sécurité suffisante pour ne pas utiliser escape().

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    juin 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2012
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Htmlpurifier
    Effectivement si tu n'escape pas tu risque d'avoir des failles xss.
    Les filters et les validators Zend ne sont pas forcément pratique si tu veux permettre l'utilisation de ckeditor.
    C'est à dire autorisé certains balises (boutons de ckeditor) et ne pas autorisé des balises que l'utilisateur va rajouter manuellement.
    Tu peux utiliser Htmlpurifier pour créer des filtres plus intelligents que les filters de zend.
    Pour ce faire, tu crée une classe qui utilise htmlpurifier pour filtrer les tags non désiré.

Discussions similaires

  1. [JEditorPane]ajout de balises html
    Par almass dans le forum Composants
    Réponses: 12
    Dernier message: 12/05/2004, 17h07
  2. XSLT et balise HTML div
    Par haypo dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 01/07/2003, 20h38
  3. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24
  4. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29
  5. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57

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