Formation PUB010 : PHP, 2022 L'authentification avec PHP

23.4 Le processus d'authentification


Le processus d'authentification se déroule en plusieurs étapes définies :

▼Publicité Le texte se poursuit plus bas

  1. L'usager entre son code d'accès et son mot de passe dans un formulaire d'authentification (prenez bien en note l'attribut name des balises <input>, vous en aurez besoin).
  2. Lorsque le formulaire est soumis, la page vers laquelle le traitement est redirigé commence par récupérer les informations entrées dans le formulaire.
  3. Le programme retrouve l'enregistrement qui correspond à ce code d'usager à l'aide d'une requête préparée. La clause WHERE ne doit pas tenir compte du mot de passe (sinon, il pourrait ouvrir un trou de sécurité). La requête s'assure que l'usager trouvé est actif.
  4. Il faut ensuite comparer le mot de passe entré par l'usager, qui est écrit en clair, avec celui de la base de données, qui a subi un algorithme de hachage avec salage.
    • Processus long (si vous n'avez pas utilisé password_hash) : Un mot de passe qui a subi un algorithme de hachage ne peut pas être décrypté. Il faut donc lui faire subir le même algorithme puis effectuer la comparaison. Et s'il avait été additionné d'une clé de salage, il faudra également additionner cette clé.
      PHP

      $motDePasseCrypte = fonctionDeHachage($motDePasseEnClair . $salage);


      if ($motDePasseCrypte == $motDePasseDansBD) {

          $ok = true;

      }

      else {

          $ok = false;

      }

    • Processus court (si vous avez utilisé password_hash) : Dans le cas où le mot de passe a subi le hachage par la fonction password_hash(), la clé de salage n'est pas connue. Elle fait partie intégrante du mot de passe obtenu. Il faudra alors utiliser password_verify() pour bien effectuer la comparaison.
      PHP

      $ok = password_verify($motDePasseEnClair, $motDePasseDansBD);

  5. S'il y a correspondance, le programme crée une variable de session pour retenir les informations sur l'usager authentifié et affiche un message de bienvenue.
  6. Sinon, le formulaire est réaffiché avec un message d'erreur.

    Attention : le message ne doit pas être trop précis sur ce qui n'a pas fonctionné. Entre autres, il ne doit pas indiquer si le code d'usager a été trouvé ou non dans la base de données. Ceci donnerait un indice intéressant à un utilisateur malveillant.

    Un message du genre « Code d'usager ou mot de passe invalide. » fait très bien l'affaire.

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Par Christiane Lagacé
Dernière révision le 17 avril 2024
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre