|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
cybrnetik WRInaute discret

Inscrit le: 30 Juin 2006 Messages: 81 Localisation: Essonne
|
Posté le : Ven Jan 19, 2007 21:23 Sujet du message: Fonction automatiques ? |
|
|
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

Inscrit le: 20 Déc 2006 Messages: 109 Localisation: Montreuil, 93
|
Posté le : Ven Jan 19, 2007 22:33 Sujet du message: Fonction automatiques ? |
|
|
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

Inscrit le: 30 Juin 2006 Messages: 81 Localisation: Essonne
|
Posté le : Ven Jan 19, 2007 23:39 Sujet du message: Fonction automatiques ? |
|
|
Donc en fait si j'ai bien compris le fonctionnement de la fonction mysql_real_escape_string, il faut que je fasse :
| Code: |
$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

Inscrit le: 16 Nov 2004 Messages: 2869 Localisation: Bangalore +3h30
|
Posté le : Ven Jan 19, 2007 23:42 Sujet du message: Fonction automatiques ? |
|
|
Salut Fab,
Question :
mysql_real_escape_string() vient en remplacement de la fonction mysql_escape_string() qui elle est depreciée ? |
|
| |
|
 |
cybrnetik WRInaute discret

Inscrit le: 30 Juin 2006 Messages: 81 Localisation: Essonne
|
Posté le : Ven Jan 19, 2007 23:49 Sujet du message: Fonction automatiques ? |
|
|
| Oui c'est ce que j'ai vu sur la doc php |
|
| |
|
 |
david96 WRInaute accro

Inscrit le: 28 Aoû 2005 Messages: 1205 Localisation: Grenoble
|
Posté le : Sam Jan 20, 2007 4:34 Sujet du message: Fonction automatiques ? |
|
|
| 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à !
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é

Inscrit le: 11 Nov 2006 Messages: 795
|
Posté le : Sam Jan 20, 2007 8:38 Sujet du message: Fonction automatiques ? |
|
|
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

Inscrit le: 20 Déc 2006 Messages: 109 Localisation: Montreuil, 93
|
Posté le : Sam Jan 20, 2007 12:08 Sujet du message: Fonction automatiques ? |
|
|
| 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 |
|
| |
|
 |
| |
|
|