HOME

Passwortgeschützte Bereiche mit der .htaccess-Datei einrichten


Wenn man schnell und einfach einige Bereiche seiner Internet-Seiten schützen möchte, gibt es eine gute Möglichkeit dieses ohne viel Aufwand zu tun. Voraussetzung ist, dass Apache der Webserver ist (der Grossteil der Server im Internet läuft mit Apache).

Also, man muss nur folgendes tun:

In dem Verzeichnis, welches passwortgeschützt sein soll, erstellt man eine Datei namens .htaccess. Der Punkt vor dem Namen ist hierbei wichtig, da er bedeutet, dass die Datei versteckt sein soll. Wenn man die Datei nun erstellt hat, füllt man sie mit Inhalt. Folgendes Beispiel verdeutlicht, was die Datei enthalten muss:

AuthType Basic
AuthName "Dieses ist ein passwortgeschützter Bereich"
AuthUserFile /webroot/persoenlich/.htpasswd
require user thomas

Die erste Zeile ist verpflichtend. In der zweiten Zeilen wird ein Text eingegeben, der in dem Fenster, welches das Passwort später abfragt, angezeigt wird. In der dritten Zeile wird der Pfad zu der Passwort-Datei (.htpasswd) angegeben. Das Verzeichniss muss nach den eigenen Bedürfnissen angepasst werden. So muss statt "webroot" das eigene Wurzel-Verzeichnis der Internet-Präsenz angegeben werden. Das Verzeichnis "persoenlich" ist das zu schützende Verzeichnis, in dem die .htaccess-Datei abgelegt ist. In diesem Verzeichnis wird dann später die Passwort-Datei erzeugt (über deren Aufbau sag ich unten noch mehr). Die vierte Zeile enthält den Benutzernamen (hier: thomas), unter dem man sich später einloggen kann. Das zugehörige Passwort steht später in der .htpasswd-Datei. Wenn man mehrere Benutzer zulassen will, kann man mehrere Zeilen der Art untereinander einfügen.

.htpasswd erzeugen

Wenn jetzt die .htaccess-Datei in dem Verzeichniss erstellt wurde, welches geschützt werden soll, müssen jetzt den definierten Usern Passwörter zugeteilt werden. Dieses macht man in der .htpasswd-Datei, die in demselben Verzeichnis erstellt wird in dem sich die .htaccess-Datei befindet bzw. welches man oben in der .htaccess-Datei definiert hat (Zeile 3).

Der Aufbau dieser Datei ist sehr einfach. In jede Zeile kommt der jeweilige Username und dann getrennt von einem Doppelpunkt kommt das verschlüsselte Passwort. Hier ein Beispiel:

thomas:n8F28qRYJJ4Q6

Hier ist der Username "thomas" und hinter dem Doppelpunkt das verschlüsselte Passwort. Das Passwort in diesem Fall lautete im Klartext "test". Doch wie erzeugt man dieses verschlüsselte Passwort? Dafür stellt die Skriptsprache PHP eine Funktion namens crypt bereit. Ich habe ein kleines Skript zusammengestellt, welches die Verschlüsselung übernimmt:

<?
   if(isset($passwort)) {
      echo("Das verschlüsselte Passwort lautet: ".crypt($passwort));
   }
?> 

Sie können das entweder selbst in PHP umsetzen oder nutzen folgendes fertiges Skript:

 Skript zum Verschlüsseln von Passwörtern für die .htaccess-Datei 

Für jeden User den Sie mittels require user in der .htaccess-Datei definiert haben, müssen Sie jetzt ein passendes Passwort erzeugen und dieses in die .htpasswd-Datei schreiben, wie es im obigen Beispiel vorgemacht wurde.

Wenn jetzt ein User auf das Verzeichnis zugreifen will, in der die .htacces-Datei abgelegt wurde, erscheint eine Aufforderung zur Passworteingabe.

Bemerkung:

Anstatt die .htpasswd-Datei in demselben Verzeichnis zu erzeugen, in dem auch die .htaccess-Datei liegt, kann man diese auch woanders erstellen und dementsprechend den Pfad in der .htaccess-Datei anpassen. Eine Möglichkeit wäre zum Beispiel die Passwort-Datei unterhalb des "Web-Roots" in einem Verzeichnis anzulegen.

Passwort erzeugen
Geben Sie in das Eingabefeld das gewünschte Passwort ein, und drücken Sie "verschlüsseln".
Danach erscheint das verschlüsselte Passwort, welches Sie in die .htaccess-Datei eintragen können.

Mit dem Programm htpasswd kann auch eine Passwortdatei erstellt werden. Dies ist sogar die bessere Methode
Um eine Pass-wortdatei anzulegen, muss zuerst ermittelt werden, wo sich htpasswd befindet (which htpasswd oder locate htpasswd ). Danach kann mit folgendem Befehlsaufruf eine Passwortdatei, die einen Benutzer enthält, erstellt werden:

verzeichnis_von_htpasswd/htpasswd -c .htpasswd Benutzername

htpasswd ist der Dateiname, wie die Passwortdatei heissen soll.
Als Benutzername kann ein beliebiger Name eingegeben werden. Mit folgendem Aufruf kann der Passwortdatei noch ein weiterer Benutzer zugefügt, oder das Passwort eines schon enthaltenen Benutzers geändert werden:

verzeichnis_von_htpasswd/htpasswd .htpasswd Benutzername

Um den Passwortschutz zu aktivieren, muss die httpd.conf des Apache Servers geändert werden.

Die Stelle, wo die httpd.conf geändert werden muss, sieht so aus:

#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
AllowOverride None

man kann den Eintrag von None auf All oder AuthConfig ändern.