Passwortschutz mit .htaccess: Passwort-Endlosschleife
tox
- webserver
Hallo,
eigentlich müsste ich dafür dekoriert werden: Ich bringe keine funktionierende Passwortabfrage mit lokalem Apache und .htaccess zustande. Ich weiss nicht wie oft ich jetzt jede Einstellung durchgesehen hab und ich seh nun gar nix mehr. Folgende Eintragung habe ich in der httpd-vhosts.conf:
<VirtualHost *:80>
ServerName www.trep.com
ServerAlias trep.com
ServerAdmin webmaster@localhost
DocumentRoot D:\_ComDesign\Kunden\TREP\Website
<Directory "D:\_ComDesign\Kunden\TREP\Website\admin">
AllowOverride All
Options IncludesNoExec
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Diese .htaccess ist in dem /admin Verzeichnis dazugekommen:
AuthType Digest
AuthName "Administration Login"
AuthUserFile .htpasswd
require valid-user
Diese .htpasswd ist im gleichen Ordner dazu:
Gary:$apr1$lm1.....$oycbp/cuD8hAMX0kvFbzm0
Diese wurde mir von passwd.exe durch einen htpasswd -c Gary und zweimaliger eingabe von 123 als Passwort erzeugt.
So alles super, ich klicke also auf den Link um die index.php in /admin aufzurufen und wunschgemäss öffnet sich ein Fenster das nach Benutzername und Passwort verlangt.
Nun gebe ich brav "Gary" und "123" ein und was macht das Ding? Das Abfragefenster wird refreshed und frägt mich mit leeren Eingabefeldern nach Benutername und Passwort. Und das Ganze auf Wunsch bis die Tasten glühen.
Warum aktzeptiert das Ding die Eingaben nicht oder macht eine Fehlermeldung?
In der access.log steht dann immer nur:
127.0.0.1 - - [05/Sep/2006:14:33:46 +0700] "GET /admin HTTP/1.1" 401 1547
Danke und Gruss
Wenn mich nicht alles täuscht musst du den Pfad zur htpasswd-Datei immer absolut angeben..
echo $begrüßung;
Wenn mich nicht alles täuscht musst du den Pfad zur htpasswd-Datei immer absolut angeben..
Muss man nicht, aber beachten sollte man, dass er bei nicht absoluter Angabe relativ zum ServerRoot gesucht wird. Der ServerRoot dürfte meist auch ungleich DocumentRoot sein.
echo "$verabschiedung $name";
Hallo dedlfix,
danke, dass Du den Leuten die hier helfen, bescheid gibts :-)
Vielleicht kannst Du mir sagen, in welchen Fällen der Apache anstatt eine Fehlermeldung auszugeben, nur das Fenster neu ausgibt?
Es scheint ja keine falsche Eingabe zu sein. Oder wie kann ich prüfen, ob die .htpasswd gefunden wird und funktioniert?
Wenn ich der Datei einen unsinnigen Namen gebe, verhält der ganze Login genau so falsch wie vorher.
Danke und Gruss
echo $begrüßung;
Vielleicht kannst Du mir sagen, in welchen Fällen der Apache anstatt eine Fehlermeldung auszugeben, nur das Fenster neu ausgibt?
Der Apache liefert Statusmeldungen zusammen mit mehr oder weniger Text aus. In deinem Fall kommt die Meldung 401. Der Browser zeigt diese jedoch nicht an sondern zeigt diesen Eingabedialog. Wenn du diesen abbrichst zeigt den ebenfalls ausgelieferten Text an. Diese Text zeigt aber den wahren Grund nicht an, denn dieser ist meist pro Statuscode in einer Datei zu finden. Es gibt aber wesentlich mehr Fehlermöglichkeiten als Statuscodes definiert sind. Fehlermeldungen schreibt der Apache in ein Error-Log. Das solltest du dir ansehen.
echo "$verabschiedung $name";
Der Apache liefert Statusmeldungen zusammen mit mehr oder weniger Text aus. In deinem Fall kommt die Meldung 401. Der Browser zeigt diese jedoch nicht an sondern zeigt diesen Eingabedialog. Wenn du diesen abbrichst zeigt den ebenfalls ausgelieferten Text an. Diese Text zeigt aber den wahren Grund nicht an, denn dieser ist meist pro Statuscode in einer Datei zu finden. Es gibt aber wesentlich mehr Fehlermöglichkeiten als Statuscodes definiert sind. Fehlermeldungen schreibt der Apache in ein Error-Log. Das solltest du dir ansehen.
Okay, der haut das raus:
[Tue Sep 05 17:08:42 2006] [error] [client 127.0.0.1] access to /admin failed, reason: verification of user id '<null>' not configured, referer: http://trep.com/
Dazu finde ich http://httpd.apache.org/docs/1.3/misc/FAQ.html#authauthoritative. Heisst das, dass er den User nicht findet? Es liegt also gar nicht am Passwort. Heisst das, dass er die ganze .htpasswd gar nicht findet? Ich hab jetzt als Pfad in der .htaccess stehen:
AuthUserFile admin/.htpasswd
Danke und Gruss
Also mit dem Nutzer kann das nichts zu tun haben.
Der steht ja für gewöhnlich in der htaccess-Datei und das die gefunden wird ist ja ganz offensichtlich.
Aber probiers mal folgendermaßen:
Versuchs mal probehalber mit einem unverschlüsselten htpasswd datei also:
Gary: 123
und schreib den nutzer direkt in die htaccess datei.
Also require Gary
hi,
Also mit dem Nutzer kann das nichts zu tun haben.
Der steht ja für gewöhnlich in der htaccess-Datei
Nein, in der .htpasswd.
gruß,
wahsaga
Wenn mich nicht alles täuscht musst du den Pfad zur htpasswd-Datei immer absolut angeben..
AuthType Digest
AuthName "Administration Login"
AuthUserFile D:/_ComDesign/Kunden/TREP/Website/admin/.htpasswd
require valid-user
Heul, hat auch nicht funktioniert. Habe das aber auch so verstanden, dass es mit relativem Pfad geht.
Was mich am meisten irritiert, dass es keine Fehlermeldung gibt...
Danke und Gruss
AuthType Digest
AuthName "Administration Login"
AuthUserFile .htpasswd
require valid-user
Ich bin zwar kein Experte auf dem Gebiet, aber hast du's schonmal mit
require user Gary
versucht?
»Ich bin zwar kein Experte auf dem Gebiet, aber hast du's schonmal mit require user Gary versucht?
Jetzt ja, hat aber nicht verändert.
Danke und Gruss
Hi,
AuthType Digest
Bist Du sicher, daß Du nicht basic benutzen willst, sondern wirklich digest?
AuthName "Administration Login"
AuthUserFile .htpasswd
Daß der Pfad nicht stimmt, wurde ja bereits gesagt.
require valid-user
cu,
Andreas
Vollständigkeitshalber hier noch die Auflösung:
AuthType Digest
Wie MudGuard auch schon angespielt hat, ist das mangels Browserunterstützung eher ungünstig. Mit Basic gehts jetzt.
AuthUserFile .htpasswd
Auch das musste ich ändern und mit einem absolutem Pfad referenzieren.
Und nur beide Änderungen gemeinsam hatten den gewünschten Erfolg. Ich hatte nämlich vorher beide Änderungen unabhängig von einander versucht.
Danke an alle
und Gruss