Wer kennt es nicht, das Schützen unterschiedlichster Inhalte mit einer .htaccess Datei und dem damit verbunden
Auth Mechanismus Basic. Da das ganze sehr einfach einzubauen ist, verwenden die meisten auch diese einfache Methode der Authentifizierung.
Leider vergisst man dabei, dass die Passwörter im
Plaintext übertragen werden, was vor allem in unverschlüsselten HTTP Verbindungen von Nachteil ist.
Deswegen sollte man mit der Zeit gehen und auf das
Apache Modul auth_digest_module setzen. Die Implementierung ist nur ein wenig aufwendiger, als mit Basic, aber im Prinzip kein Problem.
Als erstes baut man in den jeweiligen VHOST oder in einer .htaccess die folgenden Konfigoptionen ein:
AuthType Digest
AuthName "diginights.com"
AuthDigestFile /var/www/.htdigest
Require user user1 user2 blabla
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
AuthType Digest legt die zu verwendende Methode fest, in unserem Fall eben
Digest.
Der Name des so genannten Realm ist in unserem Fall "diginights.com" und wird mittels
AuthName festgelegt. Der
Realm wird auch später beim Anlegen des
AuthDigestFile abgefragt, so kann man in einem File unterschiedliche Freigaben festlegen, ähnlich wie die Gruppen bei Basic. Das AuthDigestFile ist also einfach nur die Datei, die später die Userdaten, Domain und Passwort enthält, sie sollte
unbedingt außerhalb des Webserver Verzeichnisses liegen.
Require user legt fest, welche User auf das geschütze Verzeichnis Zugriff haben.
Die Zeile mit der Option nach
BrowserMatch fängt ein mögliches Fehlverhalten älterer IE Versionen ab, näheres ist
hier nachzulesen.
Nach einem Reload des Webservers (im Falle der Konfig per VHOST) müssen wir nur noch das eigentliche File anlegen. Mittels
/usr/local/apache2/bin/htdigest -c .htdigest diginights.com andy
legen wir den ersten User, andy, im Realm
diginights.com an. Nach Einabe des Passwords hat somit der erste User Zugriff auf das gesicherte Verzeichnis.
Anmerkung: Wer innerhalb dieses Verzeichnisses
PHPMyAdmin verwendet, muss allerdings aufpassen: Wer den AuthType HTTPverwendet, muss sich leider von diesem verabschieden, da dieser wieder Basic verwendet, was innerhalb eines Vezeichnisses, welches eigentlich schon von Digestgeschützt wird, nicht funktioniert. Man sollte deshalb auf Cookie-Based oder Config umstellen.