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

Langage PHP Discussion :

Sécurité et options d'un formulaire


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de Gizmil
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Points : 60
    Points
    60
    Par défaut Sécurité et options d'un formulaire
    Salut,

    j'aimerais savoir s'il n'est pas dangereux, niveau sécurité, de créer des champs texte tels que input ou textarea dans lesquels il est possible d'insérer du html ?

    Comment puis-je empêcher l'insertion de certaines balises ou de toutes les balises et en autoriser d'autres ? En fait, j'aimerais autoriser l'insertion d'images (smileys) que je pense éventuellement faire apparaître de cette façon :

    HTML :

    CSS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    smiley1{  
        height:16px;  
        width:16px;  
        background-image:url(monsmiley1.png);  
    }
    J'aimerais également savoir comment insérer un contenu de variable String dans un champ textarea via un bouton.

    Merci! (-;

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    une donnée est une donnée. Du moment que tu traites ta donnée en tant quel, elle n'est pas dangeureuse intrisequement.

    Apres si tu veux afficher la donnée ça se complique. Si tu autorises tout et n'importe quoi, ce n'est pas dangereux pour toi mais pour ton visiteur qui verra une page qui pourra être vandalisée.

    Pour lutter contre ça, il suffit d'un peut d'astuce et de limiter les balises authorisées dans le code html. Tidy fait ça tres bien.

    Si tu passes en xhtml avec un code non valide, la page ne s'affichera pas du tout ce qui est aussi un autre probleme.

    pour ton second probleme, tu fais un bouton genre <button> ou <input type="button" /> je ne sais pas quel langage tu utilises et avec un peu de JS (prototype => 1 updater() ) et tu places un listener sur le onclick.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce n'est pas l'insertion qui pose problème mais ce que tu fais ensuite des données saisies.

    Le plus simple est de ne pas autoriser le HTML ; donc utilisation de strip_tags() eventuellement et htmlentities() ensuite pour le ré-affichage des données.

    Tu peux ensuite prévoir un système à la faç on BBCODE [smiley][/smiley] avec une expression régulière qui fait la transformation.

  4. #4
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      function allowed_tags($input, $validTags = ''){
            $regex = '#\s*<(/?\w+)\s+(?:on\w+\s*=\s*(["\'\s])?.+?\(\1?.+?\1?\);?\1?|style=["\'].+?["\'])\s*>#is';
            return preg_replace($regex, '<${1}>',strip_tags($input, $validTags));
      } 
     
    echo allowed_tags('<strong><i>hello world!</i></strong>'); // hello world! (en gras et italique)
    echo allowed_tags('<strong><i>hello world!</i></strong>', '<i>');//hello world! (uniquement en gras)

    ?

  5. #5
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    pour le bbcode j'avais repris une classe d'un forum punbb à l'époque.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/10/2006, 22h03
  2. Sécurité en VBA a travers formulaire
    Par gwendk dans le forum Sécurité
    Réponses: 11
    Dernier message: 24/05/2006, 09h52
  3. Insertion bouton d'option dans un formulaire
    Par Le Rebel dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2006, 10h36
  4. Changer d'image en fonction des options d'un formulaire
    Par Pouzy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/01/2006, 16h21
  5. [Sécurité] onglet Sécurité des options du dossier
    Par zsoh dans le forum Sécurité
    Réponses: 12
    Dernier message: 12/01/2006, 00h12

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