Benutzer-Werkzeuge

Webseiten-Werkzeuge


dev:htaccess

Verzeichnisse und Dateien mit Passwort schützen

Schutz via Controlpanel

Onlime Webhosting bietet Ihnen einen einfach zu bedienenden Verzeichnisschutz-Manger via Controlpanel, Menüpunkt Verzeichnisschutz.

Richten Sie als erstes eine Passwort-Liste ein mittels „Neues Profil anlegen“:

Beim Hinzufügen eines weiteren Benutzers zur selben Passwort-Liste, können Sie die bereits bestehende Passwort-Liste auswählen:

Nun klicken Sie oben im Abschnitt Geschützte Verzeichnisse auf „Verzeichnis schützen“. Sie können nun das Verzeichnis auswählen und eine Passwort-Liste („Berechtigungs-Profil“) hinzufügen:

That's it! Ihr Verzeichnis ist nun geschützt und nur die eingerichteten Benutzer haben Zugang darauf:

Schutz via .htaccess

Dies ist die Anleitung für das manuelle Einrichten eines Verzeichnisschutzes via .htaccess. Alternativ können Sie jedoch auch einfach unseren Verzeichnisschutz-Manager via Controlpanel verwenden. Das Resultat ist dasselbe.

.htaccess-Dateien sind verzeichnisspezifisch. Speichern Sie die .htaccess-Datei also in demjenigen Verzeichnis ab, in dem die zu schützenden Daten liegen. Sie können wahlweise das ganze Verzeichnis mit all seinen Unterverzeichnissen oder nur bestimmte Dateien oder Dateitypen schützen. Sie können den Passwortschutz außerdem wahlweise für einzelne Benutzer oder für ganze Benutzergruppen einrichten. Auch Kombinationen beider Formen sind möglich. Damit der Verzeichnisschutz mit Passwort funktioniert, genügt die .htaccess-Datei alleine allerdings nicht. Sie brauchen zusätzlich eine Datei, in der die Benutzernamen und die zugehörigen Passwörter stehen. Falls Sie mit Benutzergruppen arbeiten, benötigen Sie außerdem noch eine Datei, in der die Benutzergruppen definiert werden. Auch diese beiden anderen Dateien werden mit einem beliebigen Texteditor erstellt.

Eine ausführliche Anleitung zum Verzeichnisschutz via .htaccess finden Sie unter SELFHTML

Einfacher Verzeichnisschutz

Um einen einfachen Passwortschutz anzulegen, benötigen Sie zwei Dateien, .htaccess und .htpasswd. In .htaccess wird der Verzeichnisschutz definiert und auf die zugehörige Passwortdatei .htpasswd verwiesen.

.htaccess Beispieldatei:

AuthName "password protected"
AuthType Basic
AuthUserFile /var/www/web33/public_html/www/secure/.htpasswd

Require valid-user

Mittels AuthUserFile definieren Sie den vollständigen Dateipfad zur Passwortdatei.

ACHTUNG! .htaccess unterstützt keine relativen Dateipfade! Geben Sie stets die kompletten absoluten Pfade an (inkl. /var/www/webXX/), selbst wenn sich Ihre .htpasswd-Datei im selben Verzeichnis befindet.

Die Passwortdatei enthält pro Zeile die Paare Benutzername:Passwort, wobei das Passwort verschlüsselt ist. Die Verschlüsselung eines Passworts können Sie mit Hilfe eines .htpasswd-Generators erreichen.

.htpasswd Beispieldatei:

test:$apr1$qxlaPHX7$WYfiEFsffWLGuKA1EHJkT0
anne:$apr1$Vz7Sgwm6$snqU165a7kQIFGIiLHmNF.
kurtli:$apr1$CtRgWBbV$4NlQ3YnuCj0jKs0BWdsO40

Laden Sie die beiden Dateien mittels FTP in das zu schützende Verzeichnis. Das Verzeichnis und sämtliche darunterliegenden Dateien sind nun passwortgeschützt.

SECURITY: Wir empfehlen Ihnen, Ihre .htpasswd Datei(en) innerhalb Ihrem /files-Verzeichnis abzulegen und nicht innerhalb dem Webroot /public_html/www (siehe Verzeichnisstruktur).

Unser Webserver verhindert zwar das Herunterladen von .htaccess und .htpasswd Dateien. Trotzdem ist es sicherheitstechnisch sinnvoller, ein kritische Datei wie .htpasswd nicht im Webroot abzulegen.

Wenn Sie die Passwörter für Ihre .htpasswd-Datei selbst erzeugen mittels dem Unix-commands htpasswd. Beim erstmaligen Aufruf erzeugen Sie die Datei mittels Angabe des -c (create) Parameters:

# htpasswd -c .htpasswd username

Danach ergänzen Sie zusätzliche Benutzer wie folgt:

# htpasswd .htpasswd anotheruser

Moderne Betriebssysteme legen die Passwort-Hashes mittels Unix CRYPT ab, zusätzlich mit einem „Salt“ gesichert.

AuthMySQL

Onlime Webhosting unterstützt neben dem Einfachen Verzeichnisschutz ebenfalls das Apache-Modul mod_auth_mysql. Sie können also Ihre Benutzernamen & Passwörter bequem in einer MySQL-Datenbank verwalten und den herkömmlichen Passwort-Schutz via .htaccess verwenden.

.htaccess Beispieldatei:

AuthName "password protected"
AuthType Basic
AuthBasicAuthoritative Off
AuthUserFile /dev/null
AuthMySQL On
AuthMySQL_Authoritative on
AuthMySQL_Host localhost
AuthMySQL_DB usr_web33_1
AuthMySQL_User usr_web33_1
AuthMySQL_Password xxxxxxxx
AuthMySQL_Password_Table htaccess
AuthMySQL_Username_Field username
AuthMySQL_Password_Field password
AuthMySQL_Encryption_Types PHP_MD5
require valid-user

In obigem Beispiel haben wir als Verschlüsslungsmethode PHP_MD5 verwendet, d.h. die Passwörter müssen mit md5 verschlüsselt in der Datenbank eingetragen werden. Eine mögliche MySQL-Tabellenstruktur sieht so aus:

CREATE TABLE `htaccess` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(255) NOT NULL,
  `password` CHAR(32) DEFAULT NULL,
  PRIMARY KEY  (`id`),
) TYPE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;

Eintrag eines Testusers „test“ mit Passwort „1234“:

INSERT INTO `htaccess` (`username`, `password`) VALUES('test', MD5('1234'));

mod_auth_mysql unterstützt folgende Verschlüsselungsmethoden für das Passwort-Feld:

AuthMySQL_Encryption_Types Plaintext Crypt_DES Crypt_MD5 Crypt PHP_MD5 SHA1Sum MySQL
dev/htaccess.txt · Zuletzt geändert: 2013/12/13 00:29 von phi