Comment securiser une requette SQL

Répondre
maxroucool
maxroucool
Déconnecté
Slt tlm,

je me demandais comment faire pour executer une requette SQL bien sécurisée.
J'ai lu [lien=ca]http://www.td.unige.ch/wsh/securite_php_mysql.pdf[lien], et j'en deduis qu'il fodrait par un str_replace ac #, et un addslashes, mais c'est pas tout quand meme?!

Sinon, y'a longtemps, j'avais lu qu'il fallait faire des expression reguliere dans php, pour verifier la nature des données avant d'envoyer la requette a MySQL.

Est-ce que c'est vrai, et est-ce que c'est tout?!


Merci bp!
+++
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Plusieures regles simples :
- controler par des regex ou autres ce que tu comptes rentrer en base
- utiliser les fonctions d'escape adaptées à ta base de données (mysql_escape_string ou mysql_real_escape_string) : on doit utiliser addslashes QU'EN DERNIERE SOLUTION (c'est à dire lorsque PHP ne propose pas de fonction d'escape pour un SGBD, mais ce n'est pas le cas pour MySQL)
- utiliser la fonction intval de PHP au lieu de mysql_escape_string lors de condition sur des champs numériques
- ne pas afficher les erreurs de PHP et/ou de MySQL en production
- protéger tes champs SQL via des backquotes : `

Voila, si tu suis toutes ces regles à la lettre, ton site sera plus sécurisé que 80% des sites fais en PHP

Faut le reconnaitre : PHP est simple d'accès. Beaucoup de gens font de la merde avec en se disant "ca marche donc c'est bon". Ben oui mais non.... La programmation, c'est un vrai métier qui s'apprend, et la sécurité est un élément important lors du développement d'un site.

Je ne jette pas la pierre sur les autres, moi meme il y a 7 ans, je ne pretais que tres peu attention à ces problèmes (c'est d'ailleurs principalement pour ca que la v4 met du temps à sortir : je veux qu'elle soit "parfaite"), mais c'est une erreur.
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
Hello !

Plein d'articles très intéressants sur le sujet :
http://www.phpsecure.info.

@+...
maxroucool
maxroucool
Déconnecté
OK ben merci a tous les deux pour votre reponse. Je vais essayer de suivre tes indications a la lettre la globule!!

Je pensais me faire une classe (ce sera nouveau pour moi) pour justement faire des requettes SQL securisées, il doit surement en exister des toutes faites, vous en connaissez pas, pour que je puisse m'en aider.

+++
jocker
jocker
Déconnecté
une classe te permettra de simplifier l'envoi de tes requete mais encore faut il qu'elles soit bien utilisée.

je te conseille de regarde un script de forum punbb qui utilise une excellente classe mysql et tu verras dans les pages comment on l'utilise.

@++
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php