2012-07-26 3 views
7

Peut-il y avoir un moyen de définir son fichier .htaccess pour qu'il demande une authentification à chaque fois? Exemple: J'ouvre un onglet du navigateur, je vais à l'url pw protected, on me demande un pw. Fermez l'onglet (le navigateur principal est toujours ouvert) et répétez l'opération ci-dessus et recommencez le programme. Cela ne se produit pas à moins que je ferme le navigateur. Peut-être que c'est une mise en cache?Invite .htaccess pour le mot de passe

Voici ce que j'ai jusqu'à présent:

AuthType Basic 
AuthName "myName" 
AuthUserFile "/home/myDir/.htpasswds/public_html/myName/passwd" 
require valid-user 

Merci à l'avance.

Répondre

6

En fait, il fonctionne de cette façon (simplifiée):

  • navigateur envoie une demande à votre serveur sans informations d'identification
  • réponses Apache avec 403 erreur car « require-utilisateur valide » a été spécifié
  • invites navigateur pour le nom d'utilisateur & password
  • le navigateur envoie une nouvelle demande, cette fois les informations d'identification sont fournies
  • Apache vérifie les informations d'identification par rapport à AuthUserFile et définit "valid-user" en conséquence
  • si tout est OK - met des données avec 200 code d'état
  • navigateur qui reçoit 200 codes caches informations d'identification utilisées pour le domaine concerné jusqu'à la session du navigateur expire

Comme vous le voyez, le problème réside dans le navigateur. Vous ne pouvez pas forcer le navigateur à oublier le mot de passe qu'il utilise pour un domaine. Et d'habitude vous ne voulez pas - par exemple si la page protégée par mot de passe contient des images - le navigateur exigerait le nom d'utilisateur et le mot de passe pour chaque image téléchargée.

Cependant, il y a quelques conseils que vous pouvez essayer:

  • vous pouvez écrire votre propre gestionnaire d'autorisation Apache qui autorise seul utilisateur à chaque seconde fois qu'il accède à la page; mais il est difficile de faire vraiment
  • vous pouvez utiliser une sorte d'authentification basée sur un formulaire (dans un script comme php ou asp.net) au lieu de se fier à l'authentification http; de cette façon est assez flexible
  • vous pourriez faire un tour, que chaque fois qu'une page protégée est accessible un certain type de script change le mot de passe dans le fichier passwd; fournissez ensuite deux mots de passe pour chaque utilisateur et changez-les à chaque requête; De cette façon, le navigateur se souvient toujours du mot de passe «incorrect». cela semble fou mais c'est une solution plus simple que je pourrais penser :-)
Questions connexes