PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 24-09-2009 23:16:46

morgan47
Membre
Inscription : 19-08-2009
Messages : 52

Sécurité et insertion dans une base mysql.

Bonjour,
j'ai pose des messages sur ce forum smile
Je suis en train de revoir toutes mes bases, ca me fait pas de mal ^^.

Voila actuellement ce que je fais avant d'insérer un enregistrement dans une table :

$var= htmlentities($var, ENT_QUOTES);

Cette ligne me transforme tous les caractères spéciaux en entité html, donc plus de ' ou ".

D'ou ma première question, est ce que si j'utilise cela, il est nécéssaire d'utiliser addslash en plus?

Ma seconde question, est ce que mysql_real_escape_string  est utilie avec htmlentities? ( je sais que la réponse est oui sinon ca existerai pas. mais pourquoi?)

Et dernière question, comment faut t'il réèlement traiter une chaine avant de l'insérer?


Merci beaucoup

Hors ligne

#2 25-09-2009 07:17:12

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Sécurité et insertion dans une base mysql.

Salut,

htmlentities convertie non seulement les " et ' mais aussi tous les caractères qui ont des équivalents en entités HTML.
< en <
> en >
etc...

Pour cette raison, je ne pense pas que son utilisation avant insertion en bdd soit une bonne chose, on doit l'utiliser avant affichage.
Pour insertion bdd il faut utiliser mysql_real_escape_string c'est fait pour ça.


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#3 25-09-2009 07:32:37

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Sécurité et insertion dans une base mysql.

Ou, encore plus meilleur, utiliser PDO avec les requêtes paramétrées et, par exemple, les bind values.
Si, si, ça l'fait.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#4 25-09-2009 09:23:47

morgan47
Membre
Inscription : 19-08-2009
Messages : 52

Re : Sécurité et insertion dans une base mysql.

Pour cette raison, je ne pense pas que son utilisation avant insertion en bdd soit une bonne chose, on doit l'utiliser avant affichage.
Pour insertion bdd il faut utiliser mysql_real_escape_string c'est fait pour ça.

Pourquoi ne pas le faire avant si il faut le faire aprés cela revient au même non?


Pour l'insertion, juste mysql_real_escape_string suffit? pas de addslashe ou autre?

Hors ligne

#5 25-09-2009 09:51:31

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Sécurité et insertion dans une base mysql.

morgan47 a écrit :
mcAllan a écrit :

Pour cette raison, je ne pense pas que son utilisation avant insertion en bdd soit une bonne chose, on doit l'utiliser avant affichage.
Pour insertion bdd il faut utiliser mysql_real_escape_string c'est fait pour ça.

Pourquoi ne pas le faire avant si il faut le faire aprés cela revient au même non?

Parceque la BDD n'est qu'un espace de stockage et doit faire abstraction de la sortie envisagée, la sortie n'étant pas toujours une page WEB. Si tu veux faire un export vers un fichier texte ou XML ou encore une impression, il te faudra retraiter le contenu.

morgan47 a écrit :

Pour l'insertion, juste mysql_real_escape_string suffit? pas de addslashe ou autre?

mysql_real_escape_string fait un peu plus que addslashes et spécialement pour mySql, alors oui c'est mieux. smile

Edit:
Voir aussi : http://www.phpdebutant.org/article150.php


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#6 30-09-2009 10:54:05

morgan47
Membre
Inscription : 19-08-2009
Messages : 52

Re : Sécurité et insertion dans une base mysql.

Une dernière petite chose smile

Lors de l'affichage des données, il n'y à pas une fonction inverse de mysql_real_escape_string pour bien afficher les données?
Comme addslash et stripslash?

Merci

Hors ligne

Pied de page des forums