Cryptage du password dans la base de données

lynda789456 Messages postés 225 Date d'inscription   Statut Membre Dernière intervention   -  
lynda789456 Messages postés 225 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir !
STP Jordane, comment je fais pour crypter mes password dans la base de données via ton code stp?
 <?php
//démarrage des sessions
session_start();

//connexion à la BDD
include 'connect.php';
mysqli_select_db('bdd');

   
//récupération "propre" des variables AVANT de les utiliser !
$login = isset($_POST['login']) ? $_POST['login'] : NULL;
$password = isset($_POST['password']) ? $_POST['password'] : NULL;

//traitement du formulaire
if(isset($_POST['submit'])) {

  if($login&&$password) {
   $sql = "SELECT * 
              FROM prof 
              WHERE login='$login' 
                  AND password='$password'";

   $query = mysqli_query($sql);
   $rows = mysqli_num_rows($query);
   if($rows==1) {
     $_SESSION['login'] = $login;
     header('Location:essai.php');}
     exit();
  
   }else{
    echo '<span style="color:#EE1010;">Pseudo ou mot de passe incorrecte</span>';
   }
 }else{
   echo '<span style="color:#EE1010;">Veuillez saisir tous les champs</span>';
 }
}
?>

Merci d'avance ;)
A voir également:

1 réponse

Xavierdu34 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   21
 
Bonjour,

Il y a plusieurs façons de crypter le mot de passe, je te conseille de le faire directement en php au moment de l'inscription plutôt que par la database.

$pass = 'password' ;
$hash = password_hash($pass,PASSWORD_BCRYPT,['cost' => 13]) ;


Que se passe t'il si sur ton formulaire de login on met : (en admettant que le user admin existe)

admin';--

cela correspondrai à la requête suivante :

$sql = "SELECT * FROM prof WHERE login='admin';-- AND password='cequonveut'";


cette requête est la même que :

$sql = "SELECT * FROM prof WHERE login='admin';";


et cette requête retournera 1 résultat. soit lors de ta vérification :

 if($rows==1) {
     $_SESSION['login'] = $login;
     header('Location:essai.php');}
     exit();


Sans avoir le mot de passe, je pourrais me connecter en admin sur ton site.

Va faire un tour sur le top owasp 10, et particulièrement faire un tour sur l'injection SQL et l'injection de code.

Cdlt.
0
lynda789456 Messages postés 225 Date d'inscription   Statut Membre Dernière intervention  
 
Ok merci pour les réponses ;)
Mais pourquoi t'as mis ce '13' ?,
$pass = 'password' ;
$hash = password_hash($pass,PASSWORD_BCRYPT,['cost' => 13]) ;

et je dois mettre cette ligne ou sur mon code stp ??
Cordialement ;)
0