Sanguo Posté 15 Avril 2009 Partager Posté 15 Avril 2009 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 More sharing options...
SStephane Posté 15 Avril 2009 Partager Posté 15 Avril 2009 (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 Modifié 15 Avril 2009 par SStephane Lien vers le commentaire Partager sur d’autres sites More sharing options...
TheRec Posté 15 Avril 2009 Partager Posté 15 Avril 2009 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 ) 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 More sharing options...
Sanguo Posté 15 Avril 2009 Auteur Partager Posté 15 Avril 2009 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 More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant