Aller au contenu

Probleme etrange d'authentification


Sujets conseillés

Posté

Bonjour,

J'ai un probleme plutot etrange :

J'ai une page qui est authentifiee grace a un simple .htaccess comme suit :

AuthUserFile /quelquepart/.htpasswd
AuthType Basic

AuthName "Mais qui etes vous"
require valid-user

Maintenant, j'ai des utilisateurs qui partagent le meme PC et il faudrait donc qu'ils puissent changer d'utilisateur sans fermer le navigateur.

J'ai donc ajouter un lien comme suit :

<div class='admin zdroite centre encadree'>
<a href='?action=deloggue&prevu=<?= rawurlencode($_SERVER['REMOTE_USER']) ?>'>Je ne suis pas "<?= $_SERVER['REMOTE_USER'] ?>"</a>
</div>

qui lance le code PHP suivant qui se trouve bien evidement au debut du code de la page :

	if(isset($_REQUEST['prevu']) && $_REQUEST['action'] == 'deloggue' && $_REQUEST['prevu'] == rawurldecode($_SERVER['REMOTE_USER'])){
header('WWW-Authenticate: Basic realm="Pages d'."'".'administration"');
header('HTTP/1.0 401 Unauthorized');
}

.

Le code semble bien fonctionner car si je suis logger une permiere fois en temps que Laurent, si je clique sur le lien, je peux devenir Sonia par le popup d'autentification.

Et c'est apres que ca devient completement barge : si je reclique encore sur le lient, je deviens alternativement Laurent et Sonia sans qu'aucun POPUP ne s'affiche :wacko::wacko:

J'ai rajouter des date('r') et je suis sur qu'il m'affiche une nouvelle page, et non pas un cache.

C'est comme si le navigateur avait memorise que [b]http://.../?action=deloggue&prevu=Laurent doive me faire devenir Sonia et que [b]http://.../?action=deloggue&prevu=Sonia doive m'authentifier en tant que Laurent.

Je suis sur FireFox 2.0 et j'ai aussi essaye avec la derniere version de Mozilla et c'est pareil.

Merci pour vos idee.

Laurent

Posté

A mon avis non tu ne devient pas Sonia pour le serveur, mais ta session de navigation est toujours valable c'est tout.

Pour verifier cela interdit le user Sonia dans ton .htpassword pour voir a mon avis cela fonctionnera toujours.

Sauf erreur de ma part il faut quitter la session de navigation pour provoquer une autre identification du navigateur,

avec header tu agis sur ce que le serveur envoi à ton navigateur mais pas sur ce que ton navigateur renvoi au serveur

enfin c'est ce que je crois savoir... note bien que je n'affirme par a 100% je vais donc suivre ce fils avec intérêt pour

ma connaissance perso.

Posté

Bon, alors j'ai trouve :smartass::):cool: ... et c'etait parfaitement STUPIDE.

En fait, le bleme etait que le realm du .htpasswd ne correspondait pas a celui de l'entete :whistling: ce qui fait que mon PHP essayait bien de me delogger ... mais dans un context different.

Il basculait alternativement d'un utilisateur a l'autre car, la page avait 2 contexts differents en meme temps, et suivant que mon code de deloggage etait appeler ou non, ce n'etait pas le meme qui etait actif.

Excellent si on veut faire devenir ses visiteurs completement singles.

Par contre f_trt, cette methode fonctionne pile poile bien : le navigateur efface l'authentification des qu'il recoit un 401 pour un context donne.

A+

Lolo

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...