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

Symfony PHP Discussion :

Echapper du html [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut Echapper du html
    Bonjour.

    Dans mon backoffice j'ai un champs ckeditor et lorsque j'ajoute un nouvel enregistrement dans ma BDD les balises html ne sont pas échappées.

    Ceci est très gênant, et permet d'insérer du javascript par exemple qui serait exécuté (j'ai testé et c'est bien le cas)

    Je m'explique dans mon champs ckeditor je met ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>alert(document.cookie)</script>
    j'ai le même code dans ma bdd, ca ne devrait pas être ceci à la place?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &lt;script&gt;alert(document.cookie)&lt;/script&gt
    Dans mon fichier settings.yml j'ai pourtant bien ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .settings:
        # Output escaping settings
        escaping_strategy:      true
        escaping_method:        ESC_SPECIALCHARS
    Merci.

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    D'après ce qui est dit dans cette doc cela ne sert qu'à échapper les variables dans les templates (c'est à dire à l'affichage et non à l'enregistrement) :

    http://www.symfony-project.org/refer...fr/04-Settings

    Tu peux faire un coup de htmlspecialchars avant d'enregistrer en DB.

  3. #3
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    En quoi le fait d'enregistrer du script dans la base pose-t-il un problème ?

    Le MySql n'exécute pas le javascript.

    Ce qu'il faut absolument, c'est l'échapper avant l'affichage, ce que symfony gère très bien.

    Tu peux effectivement utiliser htmlspecialchars avant de le mettre dans la base, mais tu devra faire l'opération inverse lors de chaque récupération... Et t'es pas sorti de l'auberge.

    Symfony est bien conçu niveau sécurité, là, il ne se trompe pas.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    En quoi le fait d'enregistrer du script dans la base pose-t-il un problème ?

    Le MySql n'exécute pas le javascript.

    Ce qu'il faut absolument, c'est l'échapper avant l'affichage, ce que symfony gère très bien.

    Tu peux effectivement utiliser htmlspecialchars avant de le mettre dans la base, mais tu devra faire l'opération inverse lors de chaque récupération... Et t'es pas sorti de l'auberge.

    Symfony est bien conçu niveau sécurité, là, il ne se trompe pas.
    En fait ce champs contient du HTML, qui est donc inséré en bdd.
    Lors de l'affichage je veux que ce code html soit interpreté, donc je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $active_post->getExcerpt(ESC_RAW)
    En faisant comme ceci mon post est donc bien nickel avec sa mise en forme html etc.

    Cependant si quelqu'un insère du javascript il sera exécuté et ca il ne faut absolument pas; voila ce qui m'embête.

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    tu as parfaitement raison.

    Je modifierais la méthode get de l'objet base de donnée.

    Le méthode d'origine est expliquée sur développez.net supprimer les balise script et leur contenu.

    Donc dans le modèle de ta table, le champ s'appellera info
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public function getInfo($Info)
    {
       $info = preg_replace('@<script[^>]*?>.*?</script>@si', '', $info);
       parent::_set('info', $info);
    }
    Ainsi tu n'a rien a changer dans tes form et d'où que vienne l'information tu es sur qu'elle sera propre dans la base.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 207
    Par défaut
    Merci mim68, c'est nickel

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

Discussions similaires

  1. Algorithme de conversion de RTF vers HTML
    Par youtch dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 10/09/2002, 12h35
  2. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29
  3. composant builder4 pour afficher du code html
    Par BranRuz dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/09/2002, 11h35
  4. delphi XML / HTML caractéres speciaux !
    Par adem dans le forum EDI
    Réponses: 2
    Dernier message: 29/08/2002, 17h48
  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