Aller au contenu

php et injection mysql


w33d1f0

Messages recommandés

Je voulais savoir si le magic_quotes_gpc à ON (ds php.ini) protégeait à 100% des attaques par injection mysql ?

A priori si le ' est slashé plus moyen de faire l'injection, ce qu'on ajoute étant pris pour suite de la variable et non pa comme la suite de la requête, mais je me demandais s'il n'etait pa possible de "déslashe" (ou débackslashé serait + correct).

Pour le cas ou le serveur à les magic_quotes_gpc sur off, g vu qu'il fallait utiliser la fonction mysql_real_escape_string() pour du code sure, description sur :

http://www.nexen.net/docs/php/annotee/func...cape-string.php

Voil c tout.

Lien vers le commentaire
Partager sur d’autres sites

Pour le cas ou le serveur à les magic_quotes_gpc sur off, g vu qu'il fallait utiliser la fonction mysql_real_escape_string() pour du code sure, description sur :

http://www.nexen.net/docs/php/annotee/func...cape-string.php

Comme il est dit au niveau de la partie "Meilleure pratique", de ce lien, considère toujours que les magic quotes sont off, et utilise une petite fonction type la quote_smart() qu'ils donnent... (oublie pas de te connecter au serveur MySQL, *avant* d'utiliser la fonction 'mysql_real_escape_string')

mais je me demandais s'il n'etait pa possible de "déslashe" (ou débackslashé serait + correct).

Si tu parles d'un utilisateur qui pourrait passer outre le backslashage, non, c'est théoriquement impossible (sauf bug de PHP/MySQL, ou mauvaise utilisation de ta part); si tu veux toi-même, débackslasher une chaîne, t'as stripslashes() (http://www.nexen.net/docs/php/annotee/function.stripslashes.php).

Lien vers le commentaire
Partager sur d’autres sites

Merci pour tes infos.

A près test en effet même en utilisant stripslashes() dans l'injection, si le magic_quote est sur on l'attaque ne fonctionne pas.

Mais je ne suis pas certain que le magic quote empêche tte injection je vais continuer a chercher un peu...

Sinon c sur que l'utilisation de 'mysql_real_escape_string' semble etre le meilleur moyen pour securiser un code, afin de le rendre portable vers un serveur qui a le magic_quote à off...

Lien vers le commentaire
Partager sur d’autres sites

A près test en effet même en utilisant stripslashes() dans l'injection, si le magic_quote est sur on l'attaque ne fonctionne pas.

Mais je ne suis pas certain que le magic quote empêche tte injection je vais continuer a chercher un peu...

Cherche pas trop longtemps quand même :p (enfin c'est bien de tester pour se rendre compte des choses... c'est pas un reproche :p)

Sinon c sur que l'utilisation de 'mysql_real_escape_string' semble etre le meilleur moyen pour securiser un code, afin de le rendre portable vers un serveur qui a le magic_quote à off...

Absolument. Le jour où ton code arrivera sur un serveur sur lequel on ne pourra pas régler cette option, et quelle est désactivée, tu devras recoder cette partie, alors autant bien le faire dès le début...

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...