Aller au contenu

Listage de table SQL


Sujets conseillés

Posté

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 ?

Posté (modifié)

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
Posté

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.

Posté

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.

Veuillez vous connecter pour commenter

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



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