Verzeichnis mit Benutzer / Passwort schützen

Wir haben hier im Blog schon einige Funktionen mit Hilfe der .htaccess Datei beschrieben. Eine immer wiederkehrende Aufgabe für Besitzer einer Webseite, ist der Schutz eines Verzeichnisses mit einer Kombination aus Benutzername/Passwort.

Für diese Aufgabe werden zwei Dateien benötigt. Einmal die .htaccess, in der die Anweisungen für den Apache-Webserver stehen und eine zweite Datei, in der die festgelegten Zugangsdaten (Benutzername/Passwort) hinterlegt sind. Hier gebe ich ein einfaches Beispiel. Nehmen wir an, ich möchte einen Ordner anlegen, der geschütz werden soll. Diesen nenne ich z.B. „gesichert“. Auf diesen Ordner soll man mit dem Benutzernamen „Mustermann“ und dem Passwort „123456“ Zugriff erhalten. Natürlich sollte man nie so ein unsicheres Passwort wählen, es ist ja auch nur ein Beispiel.

Jetzt lege ich mir in dem zu schützenden Verzeichnis die .htaccess Datei an. Sie sollte als Minimum folgende Einträge enthalten:
# .htaccess-Datei für Verzeichnisschutz
AuthType Basic
AuthName "Geschützer-Bereich"
AuthUserFile /www/htdocs/meinAccount/gesichert/.htusers
Require user Mustermann

In der ersten Zeile steht lediglich ein Kommentar ohne eine Funktion. Es wird durch das # Zeichen eingeleitet und gilt nur für die jeweilige Zeile. Mit AuthType Basic wird festgelegt, dass die einfache Authentifizierung per HTTP genutzt wird. Mit AuthName kann für den zu schützenden Bereich ein Hinweis an den Nutzer im Browser eingetragen werden. AuthUserFile gibt den absoluten Pfad zu der Datei mit den Benutzernamen und Passwörtern an. Dabei handelt es sich nicht um den Pfad ausgehend von dem Startverzeichnis des eigenen Webpaketes, sondern um den echten Pfad auf dem Server.

Unterstützt das eigene Webhostingangebot PHP, so kann man sich mit einer kleinen Datei aushelfen, um den richtigen Pfad zu finden. Dazu legt man in dem Verzeichnis, in dem sich die Datei mit den Zugangsdaten befindet, eine Datei an. Zum Beispiel: info.php

In diese schreibt man folgende Zeilen:
<?
phpinfo ();
?>

Jetzt rufen wir unsere info.php wie jedes andere HTML – Dokument über den Browser auf. Es werden jede Menge an Informationen angezeigt. Uns interessiert jedoch nur eine Zeile:

In dem Bereich APACHE ENVIRONMENT findet man einen Eintrag SCRIPT_FILENAME.

Dort steht der absolute Pfad, der auch in der Zeile mit AuthUserFile eingetragen werden muss. Steht kein PHP zur Verfügung, sollte man auf den Webseiten des Hosters nachsehen, solche Informationen stehen oft in den FAQ. Sollte dort nichts stehen, wendet man sich einfach einmal an seinen Hoster direkt mit dieser Frage über den Support.

Kommen wir zur letzten Zeile. Mit Require user bestimmen wir jetzt noch den Benutzernamen, der für die Authentifizierung benötigt wird. Möchte man mehreren Benutzern den Zugriff erlauben so trägt man diese getrennt durch ein Leerzeichen hintereinander ein, z.B. so:
Rquire User Benutzername1 Benutzername2 Benutzername3 usw.
Jetzt fehlt nur noch die Datei mit den Zugangsdaten. Oft wird sie .htusers genannt. Bei den meisten Hostern ist es wichtig, dass der Dateiname mit .ht beginnt! Unter dieser Vorraussetzung kann man also auch einen anderen Namen wählen. Der Inhalt dieser Datei sieht dann z.B. wie folgt aus:
# Zugangsdaten Benutzer:Passwort
Mustermann:ahS5i6fYfIUZA

Jeder Benutzername mit dem Passwort muss in einer eigenen Zeile stehen. Liegt das Webhostingpaketauf einem Windows-Server, so kann das Passwort nur im Klartext eingeben  werden. Handelt es sich um einen Linux-Server, so muss das Passwort vorher veschlüsselt werden. Wie das funktioniert, erfährt man unter dem Link am Ende dieses Artikels!

Um den Unterschied noch einmal zu verdeutlichen:
#Windows
Mustermann:123456
#Linux
Mustermann:ahS5i6fYfIUZA

Ob es sich bei dem Server um eine Windows- oder Linuxvariante handelt, kann man ebenfalls der phpinfo-Funktion entnehmen. Direkt in der ersten Zeile sieht man unter SYSTEM worum es sich handelt.

Sind beide Dateien vorhanden und richtig eingerichtet, sieht jeder der versucht das Verzeichnis „gesichert“ aufzurufen ein Eingabefenster. Hier als Beispiel im IE:

Fast überall wird für alle, die nicht über die korrekten Zugangsdaten verfügen, eine Fehlermeldung ausgegeben.

Hinweis: Möchte man eine .htaccess Datei unwirksam machen, geht es am schnellsten, diese umzubennen, z.B. von .htaccess zu _.htaccess
Um sie wieder zu aktivieren, einfach wieder den Originalnamen verwenden.

Weiterführende Informationen und ein Werkzeug zur Kennwortverschlüsselung zu diesem Thema gibt es auf SELFHTML

Über Torsten

Mein Name ist Torsten. Ich hoffe der Artikel hat dir gefallen und über ein Feedback von dir würde ich mich sehr freuen.

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*


Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen", um Ihnen das beste Surferlebnis möglich zu geben. Wenn Sie diese Website ohne Änderung Ihrer Cookie-Einstellungen zu verwenden fortzufahren, oder klicken Sie auf "Akzeptieren" unten, dann erklären Sie sich mit diesen.

Schließen