Bonjour,
A priori je pencherais pour un problème d'injection SQL: ton code
$v=mysql_query("select * from $table where login='$login' and password='$password'");
utilise directement les valeurs des variables POST. Ainsi, si l'utilisateur saisi quelque chose du genre en login. Ta requête SQL renverra toutes les lignes de ta table $table de façon systématique et l'utilisateur sera authentifié d'après ton code.
Une règle de base est de TOUJOURS filtrer TOUTES les variables provenant de l'extérieur et utilisées dans un script. En PHP, il existe par exemple des fonctions pour échapper les quotes et autres caractères spéciaux (addslashes(), cf. doc PHP) avant d'utiliser les variables dans une requête SQL (+ possibilité magic_quotes). Le mieux restant à mon avis, et de loin, d'utiliser des "prepared statements" lors des appels aux BDD mais je ne sais pas si c'est possible en PHP avec l'extension mysql classique (je ne suis suffisamment habitué à PHP). mysqli les propose en tout cas mais je ne les ai jamais utilisés.
En espérant avoir été utile ;-) !
Partager