Was ist eine .htpasswd Datei?
Bestimmte Dateien oder vor allem Bereiche möchte man zusätzlich schützen, da diese sensibel sind, wie beispielsweise den Adminbereich. Deshalb ist eine .htpasswd notwendig. Dabei wird in der .htaccess Datei der zu sichernde Bereich definiert mit dem entsprechenden Pfad zur .htpasswd Datei.
In der Passwortdatei ist neben dem Benutzernamen das dazugehörige Passwort zu finden, allerdings nicht in Klartext, sondern verschlüsselt.
In der .htaccess Datei muss hierzu der Authentifizierungstyp gewählt werden, der Benutzername, welcher berechtigt ist, auf diesen Bereich zuzugreifen sowie der vollständige Pfad zur .htpasswd Datei. Der vollständige Pfad ist allerdings nicht bei jedem Webhoster sofort zu sehen, deshalb muss man diesen herausfinden.
Beispiel für eine Konfiguration eines geschützten Bereichs mit der .htpasswd Datei:
# Die HTTP-Authentifizierung aktivieren
AuthType Basic
# Name des Bereichs, welcher beim Aufruf im Browser angezeigt wird
AuthName “User1”
AuthUserFile /kompletterserverpfad/pfad/pfad/pfad/geschuetzter-bereich/.htpasswd
require valid-user
Wie erstelle ich eine .htpasswd Datei?
Bei der Erstellung der Passwortdatei musst du etwas anders vorgehen als bei der Erstellung der .htaccess Datei. Dabei kannst du auf zwei unterschiedliche Wege Ihre Passwortdatei erstellen. Einmal kannst du einen Generator verwenden, der dir den Inhalt der Passwortdatei generiert.
Die Datei selbst musst du allerdings alleine erstellen. Ebenfalls den entsprechenden Texteditor öffnen, Dateinamen “.htpasswd” wählen und bei Dateiendungen “alle Dateien” auswählen (unter Windows) und abspeichern.
Der zweite Weg wäre, indem du die Generierung des Inhalts selbständig vornimmst. Sprich, du verwendest XAMPP und nutzt die entsprechenden Befehle für die Generierung. Dazu musst du in das entsprechende Verzeichnis des Generators wechseln. In der Regel lautet dieser wie folgt:
*XAMPP installations Pfad]\apache\bin
Zur Generierung des Passworts kannst du den folgenden Befehl benutzen:
Htpasswd –c [password file name] [username]
Damit wird eine Passwortdatei erstellt und standardmäßig mit MD5 verschlüsselt. Dabei ist eine stärkere Verschlüsselung sinnvoll. Zwei mögliche Varianten wären demnach:
-d für CRYPT Verschlüsselung
-s für SHA Verschlüsselung
Der vollständige Befehl für den Benutzer User1 ist dann wie folgt:
Htpasswd –cs .htpasswd User1
Damit ist die Passwortdatei erstellt. Beachte, dass dieser Befehl für das initiale Erstellen gedacht ist. Sollen weitere User hinzugefügt werden, so muss das “c” in dem Befehl weggelassen werden, da die .htpasswd Datei ansonsten ohne Warnung überschrieben wird.
Warum eine htpasswd erstellen?
Eine htpasswd Datei erhöht die Sicherheit deiner Webseite. Das bedeutet, wenn du dich ins Backend deiner Webseite einloggen möchtest, wirst du dank der htaccess und htpasswd Datei nach deinem Benutzernamen und Passwort gefragt.
Du wirst dich nur dann ins Backend einloggen können, wenn du den von dir definierten Benutzernamen und das Passwort eingegeben hast. Die htpasswd, welche in der htaccess Datei hinterlegt ist, dient als eine zusätzliche Sicherheitsfunktion und soll Angreifer daran hindern, zum Loginbereich des Backend zu gelangen.
Dies klappt jedoch nicht, wenn du ein Plugin verwendest, welches eine Sicherheitslücke hat. Denn durch die Sicherheitslücke in dem System kann ein Angreifer dennoch ins System gelangen, ohne sich über die herkömmliche Methode einloggen zu müssen.
Schützt eine htpasswd vor Hackern?
Wie bereits erwähnt, eine htpasswd wird zahlreiche Angriffe abhalten können, jedoch nicht, wenn das System als solches, also ein Plugin, Theme oder das CMS eine Sicherheitslücke hat. Dann wird der Angreifer sich über diese Lücke Zugriff verschaffen können.
Zusätzlich kannst du den Link zum WP Backend verändern, sodass dieser nicht gleich gefunden wird. Dies gilt vor alllem für WordPress Installationen.
Wenn Sicherheitslücken vorhanden sind, dann solltest du ein Update des Systems, Plugins oder Themes machen. Zusätzlich empfiehlt es sich, ein Sicherheitssystem einzusetzen, sprich, eine Art Firewall. Diese kann bestimmte IP-Adressen blocken, etc.
Aber auch hier gilt es, wenn das System eine Sicherheitslücke hat, der Angreifer dennoch in das System eindringen kann. Mit einem Sicherheitssystem kann es jedoch möglich sein, dass das Sicherheitssystem den Angreifer blockt. WordFence ist so eine Sicherheitslösung, die du für deine WordPress Installation verwenden kannst.