Fichier .htpasswd

Résolu/Fermé
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - Modifié le 8 août 2017 à 00:48
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 22 août 2017 à 19:11
Bonjour,

Je protège un répertoire du mon site web PHP à l'aide des fichiers .htaccess et .htpasswd

Tout le monde sait que le contenu du fichier .htpasswd ressemble à celui ci-dessous :
user1:mot-de-passe-crypté-de-user1
utilisateur2:mot-de-passe-crypté-de-utilisateur2
etc..
.
Quand une personne autorisée accède à ce répertoire, après sa connexion son login se trouve dans la variable PHP :
$_SERVER["REMOTE_USER"]


Dans un des menus de cet espace protégé se trouve un choix : "Changer son mot de passe". La page en question demande et vérifie :
- l'ancien mot de passe,
- le nouveau mot de passe
- la confirmation du nouveau mot de passe

Du javascript dans cette page vérifie que toutes les informations sont fournies, que le nouveau mot de passe n'est pas identique à l'ancien et que le nouveau mot de passe et sa confirmation sont identiques. Quelques autres fonctions JS vérifient la longueur (mini, maxi) et les caractères autorisés. A partir de là, si tout est correct, le script PHP de traitement ré-écrit le fichier .htpasswd avec tous les utilisateurs et leur mot de passe crypté en ne changeant que le mot de passe de l'utilisateur connecté (crypté lui aussi, naturellement). Tout fonctionne bien.

Mais...

Après avoir changé le mot de passe et ré-écrit le fichier .htpasswd je suis obligé de quitter le navigateur et de revenir dans cet espace avec le nouveau mot de passe qui m'autorisera l'accès sans problème.

J'ai le sentiment qu'ayant accédé à cet espace avec l'ancien mot de passe, celui-ci est gardé en mémoire. De ce fait, lorsque je veux accéder à une autre page, le serveur va consulter dans le fichier .htpasswd pour vérifier que je suis un utilisateur autorisé et va constater que le mot de passe de l'utilisateur courant qui a été lu dans ce fichier (donc le nouveau mot de passe) ne correspond plus à celui qui avait été fourni pour accéder à cet espace et qui est resté en mémoire (donc l'ancien mot de passe). Je ne peux donc plus accéder à rien du tout, sauf si je quitte le navigateur (qui va vider la mémoire utilisée par lui) et va autoriser que je revienne avec le nouveau mot de passe (dans le .htpasswd et en mémoire). A partir de là, plus aucun problème sauf naturellement si je rechange le mot de passe.

Ma question : Comment faire pour pouvoir continuer à naviguer dans l'espace protégé après avoir changé son mot de passe dans le fichier .htpasswd ?

Merci beaucoup pour votre aide et vos réponses.



Un problème sans solution est un problème mal posé. (Albert Einstein)
A voir également:

2 réponses

nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
22 août 2017 à 15:06
Bonjour,


Puisque les navigateurs ont commencé à implémenter une authentification de base, les administrateurs de sites Web ont voulu savoir comment laisser l'utilisateur se déconnecter. Étant donné que le navigateur met en cache le nom d'utilisateur et le mot de passe avec le domaine d'authentification, tel que décrit plus haut dans ce didacticiel, cela ne dépend pas de la configuration du serveur, mais il est question de laisser le navigateur oublier les informations d'identification, de sorte que la prochaine fois La ressource est demandée, le nom d'utilisateur et le mot de passe doivent être fournis à nouveau. Il existe de nombreuses situations dans lesquelles cela est souhaitable, comme lors de l'utilisation d'un navigateur dans un emplacement public, et ne souhaite pas laisser le navigateur connecté, afin que la personne suivante puisse accéder à votre compte bancaire.

Cependant, bien que ce soit peut-être la question la plus fréquemment posée au sujet de l'authentification de base, aucun des principaux fabricants de navigateurs ne l'a vu comme une caractéristique souhaitable à mettre dans leurs produits.

Par conséquent, la réponse à cette question est, vous ne pouvez pas. Pardon.
0
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
22 août 2017 à 19:11
Merci pour cette réponse claire. Fil clos.

--
0