Conseil sur $_GET
lorie63
-
lorie63 -
lorie63 -
Bonjour,
J'aimerai demandé quelques conseil en terme de sécurité dans un programme PHP!!
il s'agit d'un exercice, je dois dire si c'est bien ou pas , ce qui a changé etc.
<?php
// Le login et le pass se trouvent dans le $_GET.
$result = $db->query("select * from users where login=" . $_GET["login"]) ;
if ($result->num_rows > 0)
{
list($login, $pass) = $result->fetch_row() ;
if ($pass == $_GET["pass"])
{
// Suite de l'appli...
}
else
{
echo "Le mot de passe n'est pas le bon." ;
}
}
else
{
echo "L'utilisateur n'existe pas." ;
}
?>
Deja je trouve que le $_GET n'est pas adapté pour récupérer le mot de passe. Le mieux serait d'utiliser POST pour pas qu'on voit les mot de passe dans l'url. Ensuite, il y a un risque d'injection sql, donc il serait preferabe de faire quelque traitement sur le login et mot de passe avant de les utiliser avec la base de données. mais quel genre de traitement pour vérifier le contenu??
J'aimerai demandé quelques conseil en terme de sécurité dans un programme PHP!!
il s'agit d'un exercice, je dois dire si c'est bien ou pas , ce qui a changé etc.
<?php
// Le login et le pass se trouvent dans le $_GET.
$result = $db->query("select * from users where login=" . $_GET["login"]) ;
if ($result->num_rows > 0)
{
list($login, $pass) = $result->fetch_row() ;
if ($pass == $_GET["pass"])
{
// Suite de l'appli...
}
else
{
echo "Le mot de passe n'est pas le bon." ;
}
}
else
{
echo "L'utilisateur n'existe pas." ;
}
?>
Deja je trouve que le $_GET n'est pas adapté pour récupérer le mot de passe. Le mieux serait d'utiliser POST pour pas qu'on voit les mot de passe dans l'url. Ensuite, il y a un risque d'injection sql, donc il serait preferabe de faire quelque traitement sur le login et mot de passe avant de les utiliser avec la base de données. mais quel genre de traitement pour vérifier le contenu??
2 réponses
Deja je trouve que le $_GET n'est pas adapté pour récupérer le mot de passe. Le mieux serait d'utiliser POST pour pas qu'on voit les mot de passe dans l'url.
je suis d'accord
Ensuite, il y a un risque d'injection sql, donc il serait preferabe de faire quelque traitement sur le login et mot de passe avant de les utiliser avec la base de données. mais quel genre de traitement pour vérifier le contenu??
mysql_real_escape_string
je suis d'accord
Ensuite, il y a un risque d'injection sql, donc il serait preferabe de faire quelque traitement sur le login et mot de passe avant de les utiliser avec la base de données. mais quel genre de traitement pour vérifier le contenu??
mysql_real_escape_string
Nabla's
Messages postés
20731
Statut
Contributeur
3 194
https://fr.wikipedia.org/wiki/Injection_SQL