Passwortschutz über .htaccess

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Passwortschutz über .htaccess

Postby Tastenzauberer » 09. April 2008 19:13

Hallo,

ich befasse mich schon einige Zeit mit Webseitenprogrammierung und wollte mich jetzt etwas intensiver in PHP und MYSQL einarbeiten. Deshalb habe ich auf meinen System den XAMPP 1.5.0-pl1 installiert auf WindowsXP. Alles lief bisher gut und XAMPP leistet stabil seine Dienste.
Jetzt wollte ich über .htaccess ein Verzeichnis schützen. Da ich das noch niemals versucht habe, habe ich erst mal ein kleines Testverzeichnis mit Testuser angelegt. Leider funktioniert gar nichts.

Die Verzeichnisstruktur sieht wie folgt aus:

127.0.0.1/test/service/

Unter test liegt die index.php mit einem Link in den Unterordner Service. Der Unterordner soll passwortgeschützt sein. Im Unterordner Service liegt wieder eine Index.php und die Dateien .htaccess und .htpasswd.

---------- .htaccess ----------

AuthType Basic
AuthName "Service Ordner"
AuthUserFile /test/service/.htpasswd
require user micky

---------- .htpasswd ----------

micky:maus


In der Datei httpd.conf habe ich bei der .htaccess Kontrolle den Eintrag AllowOverride auf AuthConfig gestellt.

Leider ist es nun so, dass ich zwar beim klicken auf den Link nach dem Usernamen und Passwort gefragt werde, aber nicht weiter komme. Die Passwortabfrage kommt immer wieder.
Ich vermute irgendein Tipp- oder Denkfehler. Muss man bei den Verzeichnisangaben eventuell auch Gross- und Kleinschreibung beachten? Freu mich schon auf eure Hilfe.

Mit freundlichen Grüßen
Tastenzauberer
Ich brauch mehr Zeit für meine Hobbys.
User avatar
Tastenzauberer
 
Posts: 5
Joined: 09. April 2008 19:09

Postby Wiedmann » 09. April 2008 20:10

AuthUserFile /test/service/.htpasswd

Das Verzeichnis was du hier angibst, ist wirklich korrekt?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Hanspeter Thöni » 09. April 2008 20:11

Schau mal in's Errorlog des Apachen. Der schreibt dort nämlich rein, was ihm nicht passt, und warum er dich nicht reinlassen will.
Gruss Hanspeter
User avatar
Hanspeter Thöni
 
Posts: 233
Joined: 17. August 2004 10:29
Location: Schweiz

Postby Tastenzauberer » 09. April 2008 20:40

AuthUserFile /test/service/.htpasswd ist korrekt. localhost/test ist qausi als root Verzeichnis, wo ich für die Testseite die index.php drin habe. Aber ich weis nicht, ob es korrekt angegeben ist, wegen relativen und absoluten Verzeichnisangaben.
Ich such mal wegen der Errorlog. Kenn mich mit Xampp noch nicht so gut aus.
Ich brauch mehr Zeit für meine Hobbys.
User avatar
Tastenzauberer
 
Posts: 5
Joined: 09. April 2008 19:09

Postby Wiedmann » 09. April 2008 20:52

Aber ich weis nicht, ob es korrekt angegeben ist, wegen relativen und absoluten Verzeichnisangaben.

Nun ja, du hast eine absolute Pfadangabe benutzt die ja eindeutig ist und somit immer funktioniert:
--> Das Verzeichnis "test" ist ein direktes Unterverzeichnis des Hauptverzeichnisses deiner Festplatte (und dann halt noch "/service/.htpasswd" dran).

Als 2. kann natürlich noch sein, dass in der Datei ".htpasswd" falsche Angaben drinstehen.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Xardas der Dunkle » 09. April 2008 20:54

Der Pfad ist eben nicht korrekt ;). Das ist recht verwirrend mit den Pfaden das gebe ich ja zu.
Unter HTML beschreibt der / die Wurzel der Domain also, das was direkt hinter der tpl folgt.
Auf dem System selbst beschreibt er, aber wie bei linux die richtige Dateiwurzel, also zB. C:\.
Nur bin ich mir gerade nicht sicher ob bei AuthUserFile gerade das Apache-Verzeichnis die wurzel ist o_Ô.

Die error.log liegt btw. in: X:\{Xampp-Install-Path}\apache\logs\error.log

mfG
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Komplex

Postby Tastenzauberer » 09. April 2008 20:59

Habe mir die Errorlog angesehen. Da steht folgender Fehler.

[Wed Apr 09 21:42:47 2008] [error] [client 127.0.0.1] (OS 3)Das System kann den angegebenen Pfad nicht finden. : Could not open password file: C:/test/service/.htpasswd, referer: http://localhost/test/

Da würde ich natürlich gleich stutzig. Wieso geht er von c:\xyz aus? Ich dacht er geht relativ von dem Verzeichnis aus, wo ich die erste index.php für den localhost/test erstellt habe. Ich habe nun in der .htaccess

AuthUserFile /programme/xampp/htdocs/test/service/.htpasswd eingegeben und mit einmal geht es. Aber das kann ich mir nicht richtig erklären. Wenn er von c:\ absolut ausgeht, wie läuft das dann auf einem Webserver? Kann es sein, dass ich da noch ein paar Sachen in der httpd.conf ändern muss?
Ich brauch mehr Zeit für meine Hobbys.
User avatar
Tastenzauberer
 
Posts: 5
Joined: 09. April 2008 19:09

Postby Xardas der Dunkle » 09. April 2008 21:12

Auf linux läuft es genauso, mit dem unterschied das die pfade nicht so lang und abstrus sind wie unter Windows^^.
Da wird zB. gerne /www/htdocs/ als pfad gewählt.

Tipp, meinerseits leg die passwd nicht unterhalb von htdocs ab. Leg sie ins Verzeichnis von apache. Dann brauchst du auch diese langen Pfadangaben nicht mehr (dort findet er sie ohne Pfad!!!) zudem liegt sie dort sicherer :).
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Sicherheit

Postby Tastenzauberer » 09. April 2008 21:56

Über die Sicherheit habe ich auch schon nachgedacht. Werd es direkt bei Apache lagern. Nur eben beim hochladen auf einen Server ist es dann nicht so einfach, die bieten glaube ich nicht serienmäßig Sicherheitsverzeichnisse an für wichtige Daten. Da hat man nur seinen root und mehr nicht.
Ich brauch mehr Zeit für meine Hobbys.
User avatar
Tastenzauberer
 
Posts: 5
Joined: 09. April 2008 19:09

Postby Xardas der Dunkle » 10. April 2008 07:08

Davon spricht auch keiner ;). Aber solange man die Möglichkeit hat die Datei außerhalb zu lagern, sollte man diese nutzen.

Und wie gesagt wenn sie im Apache-Verzeichnis liegt sollte es ausreichen wenn da steht:
Code: Select all
AuthType Basic
AuthName "Service Ordner"
AuthUserFile .htpasswd
require user micky


Das sollte btw. auch funktionieren wenn sie im momentanen Arbeitsverzeichnis liegt ;), wobei ich mir da nicht so sicher bin, da dort meist eine Pfadangabe steht ...
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Postby Tastenzauberer » 10. April 2008 08:10

Dank für den Tipp. Ich habe es ausprobiert. Wenn ich die .htpasswd direkt in das Apache Verzeichnis lege, findet er die Datei und es funktioniert. Wenn es dann soweit mit dem hochladen auf einen Webserver soweit ist werde ich schauen, wie es sich da verhält.
Ich brauch mehr Zeit für meine Hobbys.
User avatar
Tastenzauberer
 
Posts: 5
Joined: 09. April 2008 19:09


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 15 guests