addslashes, mysql_real_escape_string, htmlentities ?

quels méthode utilisé vous pour traiter vos données d'insertions ?

Addslashes
0
Aucun vote
Mysql_real_escape_string
4
50%
Htmlentities
3
38%
Autres...
1
13%
 
Nombre total de votes : 8

ZelkiN
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 498
Inscription: 27 Juil 2007

addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 9:38

Bonjour à vous, dans le cadre d'une insertion dans une base de données, quels méthode utilisé vous pour traiter vos données d'insertions ?

Si vous en avez d'autre, merci de me le signaler et de me donner leur avantage, pareils si elles sont couplés ;)


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 10:20

Je n'utilise pas :
* addslashes : certains caractères pouvant être dangereux ne sont pas échappés avec cette fonction.
* htmlentities : la pire des fonctions !! Elle ne sert strictement à rien mise à part pourrir les données de la base.

Donc, résultat, mysql_real_escape_string suffit amplement.

ZelkiN
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 498
Inscription: 27 Juil 2007

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 10:44

OK, mais par exemple je rentre une valeur
"> ICI JE FAIS CE QUE JE VEUX


dans un input de formulaire, quand je vais afficher cette variable en value" " ca va me fermer le formulaire et m'afficher ce que je veux, comment fais tu pour contrer les effets de quote ?


spout
WRInaute accro
WRInaute accro
 
Messages: 4371
Inscription: 14 Mai 2003

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 10:45

A l'enregistrement en DB, comme Blount : mysql_real_escape_string()
A l'affichage en value="" => htmlentities()


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 10:49

Attention, je n'ai jamais dit qu'il ne fallait pas utiliser "htmlentities", la question du sondage concerne l'insertion dans la base de données, et non pas l'affichage des données.

En effet, il faut toujours protéger les chaînes de caractères lors de l'affichage. Pour cela, j'utilise la fonction "htmlspecialchars".

Mais lors de l'insertion en base de données, aucun traitement de ce genre ne doit être fait.

forummp3
WRInaute passionné
WRInaute passionné
 
Messages: 1982
Inscription: 8 Fév 2004

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 11:06

Blount a écrit:Attention, je n'ai jamais dit qu'il ne fallait pas utiliser "htmlentities", la question du sondage concerne l'insertion dans la base de données, et non pas l'affichage des données.

En effet, il faut toujours protéger les chaînes de caractères lors de l'affichage. Pour cela, j'utilise la fonction "htmlspecialchars".

Mais lors de l'insertion en base de données, aucun traitement de ce genre ne doit être fait.

d'un coté optimisation, mieux vaut faire le htmlentities (ou special char) une fois a l'insertion que des milliers de fois (voir des millions) à l'affichage pendant des jours, des mois, des années...

Aprés chacun sa philosophie ...

ZelkiN
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 498
Inscription: 27 Juil 2007

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 11:22

Donc forummp3 tu utiliserais un truc comme ca : htmlentities(mysql_real_escape_string($variable_insertion); ?


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 11:27

forummp3 a écrit:
Blount a écrit:Attention, je n'ai jamais dit qu'il ne fallait pas utiliser "htmlentities", la question du sondage concerne l'insertion dans la base de données, et non pas l'affichage des données.

En effet, il faut toujours protéger les chaînes de caractères lors de l'affichage. Pour cela, j'utilise la fonction "htmlspecialchars".

Mais lors de l'insertion en base de données, aucun traitement de ce genre ne doit être fait.

d'un coté optimisation, mieux vaut faire le htmlentities (ou special char) une fois a l'insertion que des milliers de fois (voir des millions) à l'affichage pendant des jours, des mois, des années...

Aprés chacun sa philosophie ...


Sauf que là, ce n'est plus le même sujet.
Ce dont tu parles, c'est un système de cache.

Une base de données n'est pas une page HTML.
À tout moment d'un projet, il peut peut-être nécessaire de créer une application exploitant la base de données sans même afficher de l'HTML. À ce moment là, tu te retrouveras à traiter des données erronées.

Et j'ai un gros doute sur les impacts sur la performance de l'utilisation de la fonction à chaque affichage.

forummp3
WRInaute passionné
WRInaute passionné
 
Messages: 1982
Inscription: 8 Fév 2004

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 11:35

oui, enfin, là sa question est en rapport avec php, donc j'imagine que c'est pour un site, donc du html.


spout
WRInaute accro
WRInaute accro
 
Messages: 4371
Inscription: 14 Mai 2003

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 11:38

Si c'est pour une application HTML ou pas, enregistrer les entités en HTML en BDD n'est pas une bonne technique.
C'est à l'affichage qu'il faut faire le htmlentities/htmlspecialchars.

ZelkiN
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 498
Inscription: 27 Juil 2007

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 11:44

Donc je récapitule ce qui vous semble le mieux et le plus adéquate ?

INSERTION : mysql_real_escape_string();
AFFICHAGE : htmlentities/htmlspecialchars


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: addslashes, mysql_real_escape_string, htmlentities ?

Message le Ven Jan 28, 2011 11:45

forummp3 a écrit:oui, enfin, là sa question est en rapport avec php, donc j'imagine que c'est pour un site, donc du html.


Tu sais qu'il n'y a pas que PHP dans la vie. Il ne parle pas d'une application tournant entièrement avec PHP. Et si même était le cas, il faut toujours voir à long terme.

Java, Python, Perl, C, C++, tout autant de langage utilisable pour concevoir des applications web.
Et tout autant de langage pouvant utiliser simultanément la base de données, peu importe ce qu'il est fait des données.

Après, vous faites ce que vous voulez, mais bon, j'espère ne jamais à devoir repasser derrière vous …


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités