Verzeichnisschutz via .htaccess & .htpasswd
Websites oder Verzeichnisse (Ressourcen) können mit Hilfe von zwei Dateien (.htaccess und .htpasswd) geschützt werden.
Aufbau der .htaccess
// Anwendung AuthType Basic AuthName "Name der Website oder des Verzeichnisses" AuthUserFile absoluter Pfad zur .htpasswd Require valid-user
// Beispiel AuthType Basic AuthName "cre8ive4ever Joomla Development" AuthUserFile /var/www/vhosts/joomla.cre8ive4ever.com/httpdocs/.htpasswd Require valid-user
AuthName "Ressource"
Anstelle von „Ressource“ kann ein beliebiger Begriff gewählt werden. Dieser erscheint beim Aufruf der Ressource in einem Popup.
Abb. 1
Require valid-user
Alle validen (gültigen) Benutzer dürfen auf die Ressource zugreifen.
Require user Username
Nur die aufgeführten Benutzer (hier: Username) dürfen auf die Ressource zugreifen.
(Nicht im Beispiel enthalten.)
Absoluter Pfad zur .htpasswd
Der absolute Pfad zur .htpasswd kann wie folgt ermittelt werden. Es wird eine PHP-Datei (z. B. pfad.php) erstellt und in das root-Verzeichnis geladen, in welchem sich auch die .htpasswd befindet. Durch das Aufrufen der Datei im Browser wird der benötigte absolute Pfad übermittelt und kann in die .htaccess eingebunden werden.
<?php echo realpath(''); ?> <?php echo getcwd(); ?> <?php echo $_SERVER['DOCUMENT_ROOT']; ?>
Die .htaccess wird in das zu schützende Verzeichnis gelegt.
Aufbau der .htpasswd
// Anwendung Username:verschlüsseltes Passwort (MD5)
Mit Hilfe von Gaijin kann der verschlüsselte Wert des geplanten Passwortes generiert werden.
Abb. 2 – Passwort Generator – Gaijin.at
// Beispiel 1 // Username="admin" & Passwort="admin" admin:$1$1.NPBsh3$pW4VVrKcgnaDzVFezt/1t/
// Beispiel 2 // Username="admin" & Passwort="admin" admin:$1$1.NPBsh3$pW4VVrKcgnaDzVFezt/1t/ // Username="user1" & Passwort="passwort1" user1:$1$/nGn/XHJ$9Escn/QGeK6W08nZSNS2D. // Username="user2" & Passwort="passwort2" user2:$1$sLz/UIVd$CtgzaRX53gKN76yhiy2xY.
Sofern man kein Tool zur Hand hat, kann man die Verschlüsselung auch mit Hilfe der Funktion crypt vornehmen.
<?php $password = 'Ihr gewähltes Passwort'; ?> <?php echo crypt($password); ?>
htaccess Passwortschutz & Verzeichnisschutz – Zusammenfassung
Zusammenfassend kann man sagen, dass es beim Thema Verzeichnisschutz mindestens zwei Dateien gibt.
Die .htpasswd
liegt root bzw. Stammverzeichnis der Website. Hier werden alle Zugangsdaten gespeichert. Das heißt, dass hier auch mehrere User mit entsprechenden Passwörtern hinterlegt werden.
Die .htaccess
wird immer in das zu schützende Verzeichnis gelegt. Der entsprechende Schutz wird hierbei rekursiv vererbt.
Das heißt, dass auch die Unterverzeichnisse und Daten, die in dem zu schützenden Verzeichnis liegen, nur mit Eingabe der entsprechenden Zugangsdaten erreichbar sind.