Verzeichnisschutz mit htaccess
Hallo miteinander,
ihr werdet euch jetzt Fragen, warum nochmal ein HowTo. Lonesome Walker hat mich gefragt, ob nicht Lust hätte ein richtiges zumachen.
Bitte achtet auf "/" und "\". Je nach System - Linux oder Windows Apache, XAMPP - anpassen!
Vorraussetzung ist ein Anbieter, der htaccess unterstützt. Heutzutage wird diese Methode des Schutzes von 90% aller Provider erlaubt bzw. vorgezogen. Da sie einfach und zugleich effektiv ist. Bei dem Webserver "Apache" funktioniert das Ganze wunderbar (egal ob Windows oder Linux). Jedoch beim IIS von Microsoft muss man ein bisschen nachhelfen. Unter http://www.isapirewrite.com/ (Englisch) findest du eine kostenlose Version, diese ist aber eingeschränkt . Die Dokumentation ist sehr gut. Dann ein weiteres Programm gibt es hier (http://www.troxo.com/products/iispassword/). Ich finde es leicht verständlich aber genau die gleiche Wirkung.
Hier kannst du einem Namen vergeben. Somit weiß man erst mal was sich dahinter verbirgt und man tut sich dann mit Benutzer und Passwort einfacher.
AuthType Basic (erforderlich)
Hier kann die Art der Authentifizierung festgelegt werden. Zwar wird die Passwortübertragung nicht verschlüsselt, aber sie wird von den gängigen Browsern unterstützt.
AuthUserFile /PFAD/.htpasswd (erforderlich)
Hier wird der Pfad auf dem Server angegeben, unter dem die Datei mit den Benutzernamen und Passwörtern zu finden ist. Diese Angabe sollte der absolute Pfad zur Datei sein.
Jetzt kann man zwischen 3 Methoden wählen (optional):
1.) <Limit GET> #Beschränkung: Seiten dürfen nur angeschaut werden
2.) <Limit POST PUT> #Beschränkung: Absenden von Formularen erlaubt
3.) Einfach diese Zeilen weglassen. Somit kann der Benutzer alles machen.
Am Ende der Datei einfach </Limit> schreiben.
Jeder Zugriff ist am Anfang verboten. Solange bis es eine Authentifizierung gab.
allow from all (optional)
Statt all kann man hier auch IP - Adressen mit Komma getrennt auflisten. Somit kann man den Zugriff auf einige Computer einschränken.
require valid-user (optional)
Erzwingt die Passwortabfrage. Falls in dieser Passwortdatei mehrere Benutzer stehen, haben natürlich alle Zugriff. Es könne natrülich mehrere Benutzer mit Komma getrennt angegeben werden. Vorraussetzung ist, sie müssen in der oben angegebenen Datei existieren.
require user name (optional)
Damit kann nur bestimmten Benutzer einer Datei den Zugriff erlauben.
Diesen Befehl gibt es auch wieder unter Windows und Linux. Wichtig ist, dass die Datei nicht im Internet abrufbar ist!!!
Linux (root Rechte erforderlich):
htpasswd2 /PFAD/.htpasswd BENUTZER
Hier ist noch zu beachten, dass der wwwrun der Besitzer der Datei ist. chown wwwrun /PFAD/.htpasswd!
Unter Windows sieht das Ganze ähnlich aus:
htpasswd "C:\Test\.htpasswd BENUTZER"
Optionen:
-c Wird die Datei neuangelegt.
-b Das Passwort kann mit einem Leerzeichen getrennt hinter dem Benutzer angeben werden
( Zu beachten ist, dass die Eingabe des PW's im Klartext erscheint!!!).
Nützliche Links:
http://www.trash.net/faq/htaccess.shtml - Wer noch mehr damit machen möchte.
http://u11.de/htpasswd-generator.php - Ein Generator für die beiden Dateien.
Beispiel (.htaccess):
Update: 06.03.2008 17:30
Mir ist aufgefallen, dass seit einer bestimmten Windows XAMPP Version die .htpasswd Datei nicht mehr von Apacheserver akzeptiert wird und somit der Fehler 500 erscheint. Abhilfe schafft ihr dadurch, wenn ihr aus der .htpasswd => htpasswd macht. Viel Spaß....
Gruß
Dani
ihr werdet euch jetzt Fragen, warum nochmal ein HowTo. Lonesome Walker hat mich gefragt, ob nicht Lust hätte ein richtiges zumachen.
Bitte achtet auf "/" und "\". Je nach System - Linux oder Windows Apache, XAMPP - anpassen!
Allgemein
Bei .htaccess handelt es sich um einen Verzeichnisschutz. D.h. wenn man die Adresse eingibt, kommt ein Authentifizierungsfenster. Dort muss dann der Benutzer + Passwort eingeben werden. .htaccess schützt nicht nur das Verzeichnis in dem die Datei liegt, sondern alle Unterverzeichnisse auch.Vorraussetzung ist ein Anbieter, der htaccess unterstützt. Heutzutage wird diese Methode des Schutzes von 90% aller Provider erlaubt bzw. vorgezogen. Da sie einfach und zugleich effektiv ist. Bei dem Webserver "Apache" funktioniert das Ganze wunderbar (egal ob Windows oder Linux). Jedoch beim IIS von Microsoft muss man ein bisschen nachhelfen. Unter http://www.isapirewrite.com/ (Englisch) findest du eine kostenlose Version, diese ist aber eingeschränkt . Die Dokumentation ist sehr gut. Dann ein weiteres Programm gibt es hier (http://www.troxo.com/products/iispassword/). Ich finde es leicht verständlich aber genau die gleiche Wirkung.
Optionen bei .htaccess
AuthName "test" (optional)Hier kannst du einem Namen vergeben. Somit weiß man erst mal was sich dahinter verbirgt und man tut sich dann mit Benutzer und Passwort einfacher.
AuthType Basic (erforderlich)
Hier kann die Art der Authentifizierung festgelegt werden. Zwar wird die Passwortübertragung nicht verschlüsselt, aber sie wird von den gängigen Browsern unterstützt.
AuthUserFile /PFAD/.htpasswd (erforderlich)
Hier wird der Pfad auf dem Server angegeben, unter dem die Datei mit den Benutzernamen und Passwörtern zu finden ist. Diese Angabe sollte der absolute Pfad zur Datei sein.
Jetzt kann man zwischen 3 Methoden wählen (optional):
1.) <Limit GET> #Beschränkung: Seiten dürfen nur angeschaut werden
2.) <Limit POST PUT> #Beschränkung: Absenden von Formularen erlaubt
3.) Einfach diese Zeilen weglassen. Somit kann der Benutzer alles machen.
Am Ende der Datei einfach </Limit> schreiben.
Zugriffsarten (1 Option erforderlich. Sie können auch kombiniert werden!)
order deny, allow (optional)Jeder Zugriff ist am Anfang verboten. Solange bis es eine Authentifizierung gab.
allow from all (optional)
Statt all kann man hier auch IP - Adressen mit Komma getrennt auflisten. Somit kann man den Zugriff auf einige Computer einschränken.
require valid-user (optional)
Erzwingt die Passwortabfrage. Falls in dieser Passwortdatei mehrere Benutzer stehen, haben natürlich alle Zugriff. Es könne natrülich mehrere Benutzer mit Komma getrennt angegeben werden. Vorraussetzung ist, sie müssen in der oben angegebenen Datei existieren.
require user name (optional)
Damit kann nur bestimmten Benutzer einer Datei den Zugriff erlauben.
Erstellen der .htaccess
Egal ob unter Linux/Unix oder Windows am besten erstellt man diese Datei direkt mit dem Editor. Dieser braucht keine spezielle Fähigkeiten o.ä. Wichtig ist beim Speichern der Datei, den "." Am Anfang nicht zu vergessen. Der Punkt sorgt dafür, dass die Datei versteckt wird.Erstellen der .htpasswd
Zum erstellen dieser Datei liefert der Apache gleich einen Befehl mit. Heute heißt er htpasswd2 (früher htpasswd).Diesen Befehl gibt es auch wieder unter Windows und Linux. Wichtig ist, dass die Datei nicht im Internet abrufbar ist!!!
Linux (root Rechte erforderlich):
htpasswd2 /PFAD/.htpasswd BENUTZER
Hier ist noch zu beachten, dass der wwwrun der Besitzer der Datei ist. chown wwwrun /PFAD/.htpasswd!
Unter Windows sieht das Ganze ähnlich aus:
htpasswd "C:\Test\.htpasswd BENUTZER"
Optionen:
-c Wird die Datei neuangelegt.
-b Das Passwort kann mit einem Leerzeichen getrennt hinter dem Benutzer angeben werden
( Zu beachten ist, dass die Eingabe des PW's im Klartext erscheint!!!).
Nützliche Links:
http://www.trash.net/faq/htaccess.shtml - Wer noch mehr damit machen möchte.
http://u11.de/htpasswd-generator.php - Ein Generator für die beiden Dateien.
Beispiel (.htaccess):
AuthName "test"
AuthType Basic
AuthUserFile "C:\test\.htpasswd"
order deny, allow
require valid-user
Update: 06.03.2008 17:30
Mir ist aufgefallen, dass seit einer bestimmten Windows XAMPP Version die .htpasswd Datei nicht mehr von Apacheserver akzeptiert wird und somit der Fehler 500 erscheint. Abhilfe schafft ihr dadurch, wenn ihr aus der .htpasswd => htpasswd macht. Viel Spaß....
Gruß
Dani
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 33032
Url: https://administrator.de/contentid/33032
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
3 Kommentare
Neuester Kommentar
Wenn man z. B. Passwortabfrage ODER richtige IP als Zugangsschutz haben will wird (zusätzlich zu "allow from <IP>" und "require user <name>") einfach "Satisfy any" angehängt.
Nähere Infos unter http://httpd.apache.org/docs/1.3/howto/auth.html#satisfy
Michael
PS: Die Formatierung des Links ist leider vom Forum verhunzt, der Link beginnt bei "http://..."
Nähere Infos unter http://httpd.apache.org/docs/1.3/howto/auth.html#satisfy
Michael
PS: Die Formatierung des Links ist leider vom Forum verhunzt, der Link beginnt bei "http://..."