Effectivement, ce qui ce passe ici c'est la méthode HTTP Basic Auth. Le serveur lors d'une connexion invalide renvoie une erreur 401 et un realm (une sorte de nom de contexte qui permet d'utiliser des user/mot de passe différents sur le même site), l'utilisateur doit recommencer la connexion avec un couple login/mot de passe encodé en base64 et transmis au serveur http via le header Authorization.
Ensuite, les implémentations de navigateur gardent le login/mot de passe en cache quelque part et le redonnent à chaque connexion au même serveur s'il réclame le même realm, pour éviter d'avoir à se cogner le mot de passe à chaque changement de page.
On peut aussi spécifier le login/mdp HTTP Basic Auth dans l'url de cette manière:
http://<user>:<mot de passe>@domaine.tld/reste_de_l_url/
Donc, une astuce pour se "déconnecter" est de modifier l'url en http://error:error@domaine.tld/reste_de_l_url/, ce qui forcera la connexion avec le user error et interdira la connexion, et normalement aura pour effet de vider le mot de passe du cache de ton navigateur.
Cela dit, j'ai jamais compris moi non plus pourquoi les navigateurs n'avaient pas un bouton ou une fonctionnalité "se déconnecter" accessible pour ce genre de site.
C'est une méthode d'authentification assez facile à implémenter et à utiliser, et elle permet effectivement dans certains cas de faire l'authentification avant même d'exécuter le moindre code métier coté serveur, genre directive Auth dans apache, super pratique quand on veut faire de l'authentification sans avoir nécessairement besoin d'identification.
Mais il reste que le HTTP Basic Auth est une méthode d'authentification figée, peu souple, et peu sécurisée par rapport à ce qu'on est capable de faire de nos jours (oauth, hawk, soap, certificats, etc.), elle impose l'utilisation d'un couple user/mot de passe, et permet dans n'importe quel navigateur d'avoir accès au mot de passe en clair, vu qu'au pire, t'as juste à décoder le header en base64.
Donc je restreindrais l'utilisation du HTTP Basic Auth à des sites pour lesquels tu n'as pas besoin de te déconnecter.
[^] # Re: Enregistrement des mots de passe
Posté par Babelouest (site web personnel) . En réponse à la dépêche Firefox zone en version 51. Évalué à 6.
Effectivement, ce qui ce passe ici c'est la méthode HTTP Basic Auth. Le serveur lors d'une connexion invalide renvoie une erreur 401 et un realm (une sorte de nom de contexte qui permet d'utiliser des user/mot de passe différents sur le même site), l'utilisateur doit recommencer la connexion avec un couple login/mot de passe encodé en base64 et transmis au serveur http via le header Authorization.
Ensuite, les implémentations de navigateur gardent le login/mot de passe en cache quelque part et le redonnent à chaque connexion au même serveur s'il réclame le même realm, pour éviter d'avoir à se cogner le mot de passe à chaque changement de page.
On peut aussi spécifier le login/mdp HTTP Basic Auth dans l'url de cette manière:
Donc, une astuce pour se "déconnecter" est de modifier l'url en
http://error:error@domaine.tld/reste_de_l_url/, ce qui forcera la connexion avec le usererroret interdira la connexion, et normalement aura pour effet de vider le mot de passe du cache de ton navigateur.Cela dit, j'ai jamais compris moi non plus pourquoi les navigateurs n'avaient pas un bouton ou une fonctionnalité "se déconnecter" accessible pour ce genre de site.
C'est une méthode d'authentification assez facile à implémenter et à utiliser, et elle permet effectivement dans certains cas de faire l'authentification avant même d'exécuter le moindre code métier coté serveur, genre directive Auth dans apache, super pratique quand on veut faire de l'authentification sans avoir nécessairement besoin d'identification.
Mais il reste que le HTTP Basic Auth est une méthode d'authentification figée, peu souple, et peu sécurisée par rapport à ce qu'on est capable de faire de nos jours (oauth, hawk, soap, certificats, etc.), elle impose l'utilisation d'un couple user/mot de passe, et permet dans n'importe quel navigateur d'avoir accès au mot de passe en clair, vu qu'au pire, t'as juste à décoder le header en base64.
Donc je restreindrais l'utilisation du HTTP Basic Auth à des sites pour lesquels tu n'as pas besoin de te déconnecter.