mysqli_bind_param et mysqli_real_escape_string

Le
Jeremie
Bonjour à tous,

Je suis en train de développer un petit module permettant d'insérer du
texte dans une base depuis une interface basée sur FCKEditor.

Je compte utiliser la fonction bind_param, mais je voulais savoir si
cette fonction s'occupe de protéger les chaînes passées en paramètres,
ou bien faut-il que pour chaque argument j'applique escape_string dessus ?

Merci de vos réponses,


Jérémie
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #18432071
Bonjour,

Le 19/01/2009 22:35, Jeremie a écrit :

Je suis en train de développer un petit module permettant d'insérer du
texte dans une base depuis une interface basée sur FCKEditor.

Je compte utiliser la fonction [mysqli_]bind_param,



Cette fonction est un alias de la fonction mysqli_stmt_bind_param().
Note: La fonction mysqli_bind_param() est obsolète et devrait être
supprimée.

mais je voulais savoir si
cette fonction s'occupe de protéger les chaînes passées en paramètres,
ou bien faut-il que pour chaque argument j'applique escape_string dessus ?



Je n'y connais rien, mais en lisant la doc je vois que l'on sépare la
requête (mysqli_prepare) et les données (mysqli_stmt_bind_param), aussi
cette méthode semble naturellement protéger des injections dues au
mélange des deux dans un même appel.

Cela étant dit, je laisse les spécialistes répondre.

--
Olivier Miakinen
Mickael Wolff
Le #18433481
Jeremie a écrit :
Bonjour à tous,

Je suis en train de développer un petit module permettant d'insérer du
texte dans une base depuis une interface basée sur FCKEditor.

Je compte utiliser la fonction bind_param, mais je voulais savoir si



La fonction membre de la classe mysqli_stmt.

cette fonction s'occupe de protéger les chaînes passées en paramètres,



La fonction ne protège rien. Cependant, puisque la requête n'est pas
fabriquée, on évite les problèmes d'injection SQL.

ou bien faut-il que pour chaque argument j'applique escape_string dessus ?



Non.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Seeking for a position
Pascal PONCET
Le #18441731
Jeremie a écrit :
Je compte utiliser la fonction bind_param, mais je voulais savoir si
cette fonction s'occupe de protéger les chaînes passées en paramètres,
ou bien faut-il que pour chaque argument j'applique escape_string dessus ?




Bonjour,

Pour cette fonctionnalité, il vaut mieux utiliser l'interface PDO.
Ses objets supportent pratiquement les mêmes méthodes et propriétés que
Mysqli, mais en faisant abstraction du type de SGBD.
De plus, les entrées préparées sont systématiquement protégées.

voir : http://fr2.php.net/manual/fr/pdo.prepared-statements.php

Cordialement,
Pascal
Publicité
Poster une réponse
Anonyme