C'est exactement ce que SQLPro et moi pensions : tu es victime d'une injection SQL !
Documente-toi sur le sujet ; tu comprendras la cause et tu trouveras les méthodes pour t'en protéger.
Grosso modo, tu as dans ton site des url avec des paramètres faisant directement référence à un identifiant d'un élément de ta BDD, ici apparemment l'identifiant du produit.
Une url de ce genre :
ton_site//produit/index/?pid=une_valeur
Et toi tu t'attends naïvement à ce que tout utilisateur utilise l'interface pour que une_valeur soit celle de l'identifiant du produit sélectionné ou un truc du genre. Sauf que des petits malins détournent ça facilement en ajoutant à ce genre d'URL une requête SQL qui va espionner ta BDD.
Quelque part, un programme de ton site récupère le paramètre pour interroger la BDD de cette manière :
Code:
1 2 3
| SELECT *
FROM produit
WHERE pid = une_valeur |
Et avec la combine qui transforme une_valeur en une_valeur+une_requête, ça donne un truc de ce genre :
Code:
1 2 3 4 5 6 7
| SELECT *
FROM produit
WHERE pid = une_valeur
UNION ALL
SELECT *
FROM information_schema.SCHEMATA
-- etc... |
Bon courage !
C'est avec ce genre de problème qu'on apprend le plus !