protection contre injection sql insuffisante


oli004
WRInaute passionné
WRInaute passionné
 
Messages: 2173
Inscription: 5 Jan 2005

protection contre injection sql insuffisante

Message le Jeu Fév 05, 2009 12:14

Bonjour tout le monde,

Je suis sur un petit moteur de recherche interne me permettant de retrouver facilement une page par la référence du produit.

Mon petit moteur fonctionne très bien, mais j'aimerai le sécuriser. Nottement contre des injections sql.
Pour le moment, je suis parti seulement sur l'utilisation de mysql_real_escape_string :

Code: Tout sélectionner
$recherche = mysql_real_escape_string($_POST['recherche']);
$sql = 'SELECT ref, page FROM `references` WHERE `ref` LIKE "'.$recherche.'%"';


Mais cela n'est pas siffisant pour éviter l'injection d'une requete sans caractère spéciaux mais qui planterai le serveur.

Une ébauche de solution existerait avec MySQLi mais je ne suis pas familiarisé. Que me suggérez-vous pour sécuriser la recherche, et par conséquent le site ?


oli004
WRInaute passionné
WRInaute passionné
 
Messages: 2173
Inscription: 5 Jan 2005

Re: protection contre injection sql insuffisante

Message le Jeu Fév 05, 2009 12:35

Je précise que j'ai effectuer le test via l'addon de firefox SQL Inject Me : https://addons.mozilla.org/fr/firefox/addon/7597 et que le résultat ne montre pas de faille (du moins connue)


skyll
WRInaute passionné
WRInaute passionné
 
Messages: 1364
Inscription: 14 Oct 2005

Re: protection contre injection sql insuffisante

Message le Jeu Fév 05, 2009 12:40

peut etre en cherchant du côté php
=> htmlentities(); est peut être une direction à creuser :D

Lomax7
WRInaute impliqué
WRInaute impliqué
 
Messages: 796
Inscription: 29 Mar 2007

Re: protection contre injection sql insuffisante

Message le Jeu Fév 05, 2009 13:33

Un simple str_replace ça va limiter fortement les risques déjà.
Il faut empêcher l'utilisation de ces quelques caractères : < > ; " \
Déjà avec ça je vois pas trop comment le petit crackeur pourrait faire quoi que ce soit.


zeb
WRInaute accro
WRInaute accro
 
Messages: 4560
Inscription: 5 Déc 2004

Re: protection contre injection sql insuffisante

Message le Jeu Fév 05, 2009 14:00

pour préserver des attaques SQL un filtrage de mot genre INCERT, DELETE, ... est efficace.
La suppression des caractères de commentaire SQL évite aussi l'envoie de plusieurs requêtes concaténées.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité