Fonction automatiques ?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

cybrnetik
WRInaute discret
WRInaute discret
 
Messages: 81
Inscription: Ven Juin 30, 2006 21:57

Fonction automatiques ?

Message le Ven Jan 19, 2007 20:23

Bonjour,
Je suis en train de créer un formaulaire pour mon site et lors de l'envoi vers la base de données j'effctue un addslashes et un htmlentities cependant je me demandai si cela n'était pas maintenant fait automatiquement lors de l'envoi d'une requete sur la base sql ?

Merci de vos réponses

fablezouave
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Mer Déc 20, 2006 7:33

Message le Ven Jan 19, 2007 21:33

salut

Si PHP est configuré pour, le addslashes() est fait automatiquement sur les données provenant de formulaires, cependant cette fonction n'est pas faîte pour proteger les données qu'on passe à une base de données, c'est une erreur très commune que de l'utiliser. Il FAUT utiliser la fonction spécifique à chaque base de données. Pour MySQL, par exemple, la fonction d'echappement est mysql_real_escape_string() :
http://php.net/mysql_real_escape_string. En utilisant addslashes(), tu t'exposes à des vulnaribilités.
Quand à htmlentities(), ça n'a rien à voir, et c'est totalement inutile de l'utiliser.

fab

cybrnetik
WRInaute discret
WRInaute discret
 
Messages: 81
Inscription: Ven Juin 30, 2006 21:57

Message le Ven Jan 19, 2007 22:39

Donc en fait si j'ai bien compris le fonctionnement de la fonction mysql_real_escape_string, il faut que je fasse :
Code: Tout sélectionner
$x = mysql_real_escape_string($x);
$y = mysql_real_escape_string($y);
$z = mysql_real_escape_string($z);
mysql_query("INSERT INTO mabase VALUES ('', '".$x."', '".$y."', '".$z."') ") or die(mysql_error());


Ps : En fait je me sert juste du htmlentities pour empecher les utilisateurs de mettre du code executable


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3337
Inscription: Mar Nov 16, 2004 18:27

Message le Ven Jan 19, 2007 22:42

Salut Fab,

Question :

mysql_real_escape_string() vient en remplacement de la fonction mysql_escape_string() qui elle est depreciée ?

cybrnetik
WRInaute discret
WRInaute discret
 
Messages: 81
Inscription: Ven Juin 30, 2006 21:57

Message le Ven Jan 19, 2007 22:49

Oui c'est ce que j'ai vu sur la doc php


david96
WRInaute accro
WRInaute accro
 
Messages: 1408
Inscription: Dim Aoû 28, 2005 21:56

Message le Sam Jan 20, 2007 3:34

fablezouave a écrit:Quand à htmlentities(), ça n'a rien à voir, et c'est totalement inutile de l'utiliser.

fab

Ha bon ? Faudrait dire pourquoi là ! :lol:

Au contraire j'aurais poussé le vice à dire :
mysql_real_escape_string(htmlentities($variable));
Ou alors à la place d'htmlentities() mettre htmlspecialchars() (ne touche pas à tous les caractères spéciaux, notamment les accents) ou alors strip_tags() qui supprime les balises html

Comme le dit cybrnetik l'htmlentities() transforme les caractères tels que "<>" en entité html qui pourraient avec qqs fonctions javascript (et autres) s'avérer potentiellement dangereuse dans un formulaire !

ACth
WRInaute passionné
WRInaute passionné
 
Messages: 795
Inscription: Sam Nov 11, 2006 12:32

Message le Sam Jan 20, 2007 7:38

htmlentities() n'est utile que pour l'affichage.

mysql_real_escape_string() est utile pour insérer des données dans la base de données.

fablezouave
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Mer Déc 20, 2006 7:33

Message le Sam Jan 20, 2007 11:08

ACth a écrit:htmlentities() n'est utile que pour l'affichage.

mysql_real_escape_string() est utile pour insérer des données dans la base de données.

+1

fab


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

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