htmlentities(), htmlspecialchars() ..
5 messages
• Page 1 sur 1
- mic54800
- WRInaute discret

- Messages: 61
- Inscription: 20 Juil 2008
htmlentities(), htmlspecialchars() ..
Bonjour,
Je cré un espace membre pour un site et comme d'jabitude, je suis confronté au même problème.
Les données du profil de chaque membre sont enregistrées en bdd.
Quand je veux afficher leur profil visible par tout le monde, je fais un htmlentities()
Seulement, il me converti les accents.
Je suis sur une page utf-8 et je n'ai pas tellement l'intension de changer.
Comment faire pour bien protéger mes pages en affichant correctement les accents ?
Serait-il mieu de faire un strip_tags() en enregistrant les données et ne pas faire de htmlentities à la sorti ?
Merci pour vos réponses !!
Je cré un espace membre pour un site et comme d'jabitude, je suis confronté au même problème.
Les données du profil de chaque membre sont enregistrées en bdd.
Quand je veux afficher leur profil visible par tout le monde, je fais un htmlentities()
Seulement, il me converti les accents.
Je suis sur une page utf-8 et je n'ai pas tellement l'intension de changer.
Comment faire pour bien protéger mes pages en affichant correctement les accents ?
Serait-il mieu de faire un strip_tags() en enregistrant les données et ne pas faire de htmlentities à la sorti ?
Merci pour vos réponses !!
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Oulala, la galère, pourquoi tu paniques autant en voulant afficher les données provenant de ta base de données ?
C'était plutôt lors de l'insertion dans ta base de données qu'il fallait t'en préoccuper, et le htmlentities est strictement inutile en utf-8.
C'était plutôt lors de l'insertion dans ta base de données qu'il fallait t'en préoccuper, et le htmlentities est strictement inutile en utf-8.
- mic54800
- WRInaute discret

- Messages: 61
- Inscription: 20 Juil 2008
Bah dans un sens où dans l'autre, moi ce que he veux c'est simplement éviter le hack du site à cause d'une boulette ...
Comment ça il est inutil en utf-8 ?
Et comment est-ce que je dois procéder pour que la bdd soit la mieu protégée et éviter les problèmes d'accents ?
Comment ça il est inutil en utf-8 ?
Et comment est-ce que je dois procéder pour que la bdd soit la mieu protégée et éviter les problèmes d'accents ?
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Personne ne s'est jamais fait hacké parcequ'il avait affiché un accent sans l'avoir passé dans un htmlentities que je sache. htmlentities ne sert que pour l'ISO, l'utf en a pas besoin puisqu'il peut utiliser tous les caractères existants...
Il suffit de vérifier lors de l'insertion tes données, c'est tout, après tu affiches sans même faire attention.
Tu vérifies tout ce que peut rentrer l'utilisateur (GET et POST) à coup de htmlspecialchars en spécifiant le 2ème paramètre, selon ce que tu veux aussi convertir (' et ") par exemple ENT_QUOTES.
Tu fais un mysql_real_escape_string lors de l'insertion en bdd.
Après quand tu vas rechercher tes infos, tu les affiches bêtement
Il suffit de vérifier lors de l'insertion tes données, c'est tout, après tu affiches sans même faire attention.
Tu vérifies tout ce que peut rentrer l'utilisateur (GET et POST) à coup de htmlspecialchars en spécifiant le 2ème paramètre, selon ce que tu veux aussi convertir (' et ") par exemple ENT_QUOTES.
Tu fais un mysql_real_escape_string lors de l'insertion en bdd.
Après quand tu vas rechercher tes infos, tu les affiches bêtement
-

Bool - WRInaute passionné

- Messages: 1290
- Inscription: 26 Fév 2004
Question de point de vue, mais pour ma part je ne fais jamais d'htmlentities ou htmlspecialchars lors de l'insertion en base de données : pourquoi encoder du texte en HTML dans une base de données ? Cela réduit très fortement les possibilités de recherche, de comparaison et de réutilisation.
Par contre il est préférable de vérifier les données lors de la saisie oui. On insère en base que ce que l'on compte utiliser quoi.
Et à l'affichage il n'y a plus qu'à faire l'htmlspecialchars / htmlentities, sur ce qui est nécessaire. Ca ne consomme vraiment pas grand chose, et je préfère pour ma part économiser d'autres ressources que ça.
Par contre il est préférable de vérifier les données lors de la saisie oui. On insère en base que ce que l'on compte utiliser quoi.
Et à l'affichage il n'y a plus qu'à faire l'htmlspecialchars / htmlentities, sur ce qui est nécessaire. Ca ne consomme vraiment pas grand chose, et je préfère pour ma part économiser d'autres ressources que ça.
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Aide htmlentities|htmlspecialchars|addslashes|stripslashes
- [Résolue] Autre solution que le htmlspecialchars ?
- htmlentities
- htmlentities et ereg
- help php et htmlentities
- addslashes, mysql_real_escape_string, htmlentities ?
- Ré-encodage après htmlentities
- Htmlentities() et les accents
- Securité : htmlentities méthode $_Get RESOLU
- Eternelle problème avec htmlentities !
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
