Aller au contenu

Listage de table SQL


Sanguo

Sujets conseillés

Bonjour,

De temps en temps Google Analytics me révèle se genre de lien sur un de mes sites :

/news.php?id=-99+union+select+1,2,3,4,concat(table_name,0x3e,column_name,0x3e,table_schema),6,

7+from+information_schema.columns+WHERE+column_name+LIKE+char(37,117,115,101,114,

37)--

Sur cette page j'ai simplement un $_GET ['id'] pour afficher la news. Avec l'appel, le malveillant arrive à afficher l'ensemble des tables de la base. Rien de dommageable mais sur le principe je tique.

Savez vous comment je peux m'en prémunir ?

Lien vers le commentaire
Partager sur d’autres sites

echapper ta variable en get pour faire ta requête avec mysql_real_escape_string() par exemple :)

Sur cette page j'ai simplement un $_GET ['id'] pour afficher la news. Avec l'appel, le malveillant arrive à afficher l'ensemble des tables de la base. Rien de dommageable mais sur le principe je tique.

ça va tu n'es pas trop regardant :D

Modifié par SStephane
Lien vers le commentaire
Partager sur d’autres sites

Salut,

Sur cette page j'ai simplement un $_GET ['id'] pour afficher la news. Avec l'appel, le malveillant arrive à afficher l'ensemble des tables de la base. Rien de dommageable mais sur le principe je tique.

Vraiment pas regardant ;) C'est juste un SELECT pour le moment... mais s'il venait à remplacer ça par des instruction destructives (TRUNCATE TABLE, DELETE FROM, etc.), je pense que tu tiqueras plus (même avec des backups réguliers :P)

Cela s'appelle une injection SQL, tu trouveras énormément d'aide à ce sujet en cherche un peu. Suis le conseil de SStephane utilise mysql_real_escape_string sur ta variable $_GET['id'], c'est un très bon début. De manière générale, ne jamais utiliser de données fournies potentiellement par un utilisateur (même des en-têtes HTTP) directement dans une requête SQL sans les avoir assainies préalablement.

Bonne continuation.

Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup pour votre aide.

J'avoue m'être toujours focalisé sur des données que j'inscrivais en base mais jamais sur ce simple appel. Je vais veiller à faire les choses plus propres.

Merci encore.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...