Page 1 sur 1

htmlspecialchars

Posté : 23 sept. 2010, 09:42
par jpao28
Bonjour,

J'aurais besoin d'un avis sur mon développement (mes pages sont en UTF-8):

Mes pages sont en UTF-8 et j'utilise strip_tags sur les $_POST puis mysql_escape_real_string avant la requête SQL
de cette façon les balises html ou autres sont supprimées et les ' sont échappés.

je pense que tous les problèmes de sécurité sont gérés ?

ma 2e question est : htmlentities et htmlsepecialchars sont inutiles pour une page en UTF-8 ? et si je n'utilise pas strip_tags ?
comment faire pour les balise html ?

Re: htmlspecialchars

Posté : 23 sept. 2010, 15:10
par Genova
Personnellement je n'aime pas strip_tags(), car il élimine parfois des informations en trop. Utiliser htmlspecialchars() me paraît plus sûr et permet d'utiliser les caractères < et > sans restriction. Tout dépend après du type d'information que tu souhaites afficher, mais s'il s'agit d'un commentaire ou message d'un utilisateur, préfère htmlspecialchars()

Re: htmlspecialchars

Posté : 23 sept. 2010, 16:12
par jpao28
Ok, c'est ce que je pensais.
mais pour htmlspecialchars, comme ma page est en utf-8
faut-il préciser des paramètres (d'encodage) du style :

Code : Tout sélectionner

$var = htmlspecialchars($var,ENT_QUOTES,'UTF-8');
du plus, mes données étant entrées dans ma BDD avec mysql_escape_real_string,
vaut-il mieux utiliser htmlspecialchars en entrée ou en sortie de la BDD ?

Re: htmlspecialchars

Posté : 23 sept. 2010, 20:11
par AB
Tu utilises htmlspecialchars uniquement pour l'affichage, et uniquement mysql_escape_real_string pour rentrer tes données en bdd.

L'avantage d'utiliser htmlspecialschars pour l'affichage plutôt que htmlentities c'est qu'avec htmlspecialschars tu n'as pas besoin de spécifier l'encodage si tu travailles en utf-8.