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 :

Meilleure méthode pour supprimer des caractères non autorisés d'une chaîne ?


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut Meilleure méthode pour supprimer des caractères non autorisés d'une chaîne ?
    Bonjour,

    Je me suis fait un back office pour un petit site.

    L’utilisateur peut saisir les balises titles, description et l’attribut alt de la balise img.

    Pour éviter d’insérer des caractères non autorisés, je transforme la chaine comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $champAlt = htmlspecialchars($data['description'], ENT_QUOTES);
    Est ce que c’est suffisant ? Faut-il utiliser htmlentities ? Ou faire un str_replace ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    A titre personnel, j'ai longtemps utilisé htmlentities avec l'option ENT_QUOTES et ça marchait nickel, aussi bien pour l'insertion en base que le tests de créer un compte avec un nickname qui est "<script>alert('coucou');</script>" ^_^
    (Les users sont parfois de petits farceurs )

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Citation Envoyé par Vinyl Voir le message

    Pour éviter d’insérer des caractères non autorisés, je transforme la chaine comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $champAlt = htmlspecialchars($data['description'], ENT_QUOTES);
    Est ce que c’est suffisant ?
    Normalement c'est suffisant ou même htmlspecialchars($data['description']) ce qui permet d'éviter de spécifier l'encodage.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Merci pour vos réponses.

    C'est marrant, j'avais testé sans l'option ENT_QUOTES et ça ne fonctionnait pas. Je viens de retester et ça fonctionne. Sans doute une erreur de ma part.

    J'ai regardé la doc sur htmlspecialchars

    Est ce que vous pouvez m'expliquer dans quel cas utiliser le flag ENT_QUOTES ?

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Pour protéger l'affichage, la config par défaut est suffisante.

    En dehors de cette utilisation basique on a parfois besoin de traitements spéciaux et c'est à cela que servent les options.
    Mais pour une utilisation courante visant à protéger des variables php pour l'affichage HTML je n'ai pas d'exemple qui me vienne en tête car cette fonction est prévue pour cela et elle rempli donc correctement son rôle avec sa configuration par défaut.

Discussions similaires

  1. [RegEx] Supprimer des caractères non autorisés
    Par ferhat.adel dans le forum Langage
    Réponses: 4
    Dernier message: 11/06/2011, 14h24
  2. Réponses: 2
    Dernier message: 08/06/2009, 14h46
  3. Réponses: 2
    Dernier message: 27/08/2008, 09h13
  4. Meilleur méthode pour stocker des images ?
    Par sofien dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 09/05/2008, 12h04
  5. Meilleure méthode pour faire des coins arrondis
    Par kodokan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 17/09/2006, 15h08

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