avianex / Allgemein / htaccess Schutz für Webprojekte erstellen

htaccess Schutz für Webprojekte erstellen

Häufig stehe ich vor der Situation, dass ich ein neues Webprojekt vorab online stellen muss, z.B. um einem Kunden bequemen Zugang zum Test zu gewähren. Wie aber schützt man die Präsenz wirksam vor den Zugriffen anderer User oder neugieriger Bots? Ein kurzes Tutorial zeigt, wie man einfach aber wirkungsvoll durch ein .htaccess-File mit Passwortschutz eine verhältnismäßig sichere Barriere aufbaut.

Vorab sollte ich erwähnen, dass ich bei mir den Apache-Webserver laufen habe und selbstverständlich muss man Zugriff auf den eigenen Webspace haben, damit der Schutz installiert werden kann. Mein PC ist zwar virtualisiert, ich nutze aber primär Windows 7 als Betriebssystem. Linux User verfahren analog – haben es zu Beginn sogar etwas einfacher. Außerdem sei noch am Rande erwähnt, dass es sich hier um eine praktische Lösung handeln soll und keine bis ins Detail ausdefinierte, vollständige, theoretische Abhandlung 😉

Wie gehen wir vor?

htpasswd organisieren

Zunächst benötigen wir das kleine Programm „htpasswd“. Auf Linux-Systemen ist dies Teil der Distribution. Wir können also direkt zur Konsole springen. Alle Windows-Nutzer müssen sich das Programm „htpasswd.exe“ organisieren. Wer bereits einen lokalen Apache-Server auf dem System hat (z.B. XAMPP) findet die Datei unter

c:\apacheinstallationsverzeichnis\bin

Wer das nicht hat, kann sich einfach eine Quelle „ergoogeln“.

Theoretisch müssen wir nun über die Konsole in dieses Verzeichnis springen, um htpasswd.exe zu starten. Aber ich würde hier gerne direkt einen Tipp einfließen lassen, sodaß es möglich ist, von überall aus den kleinen Passwortgenerator zu nutzen.

Im Windows-Explorer kopieren wir die Datei „htpasswd.exe“ in das Verzeichnis

c:\windows\system32

Jetzt können wir auch als Windows-Nutzer „unsere Konsole“ starten. Dazu einfach über Windowsstart bei „Programme/Dateien durchsuchen“ folgendes eintippen:

cmd

Die Konsole startet und wir sollten uns im Pafd des aktuellen Nutzers wiederfinden.

.htaccess erstellen

Um ein Webprojekt zu schützen benötigen wir 2 Dateien: eine htaccess-Datei, die später ins Root-Verzeichnis des Projektes kopiert wird – oder aber eine bereits vorhandene ergänzt – und eine htpasswd-Datei mit den berechtigtem Nutzer und dem Passwort das wir gleich generieren.

Die htaccess-Datei sollte so aussehen:

AuthType Basic
AuthName "Zugangskontrolle"
AuthUserFile /serverpfad/verzeichnis/htpasswd
Require valid-user

Hinter „AuthUserFile“ schreiben wir den absoluten Serverpfad zur htpasswd-Datei. Hier liegt die Datei und dieses Verzechnis sollte am Besten nicht im „DocumentRoot“ liegen, da sonst zumindest die Möglichkeit besteht, dass jemand darauf zugreift. Leider wird nicht jeder die Möglichkeit haben Dateien außerhalb des zugewiesenen Pfades ab zu legen – insbesondere wenn man ein Webpaket hat und eben keinen ganzen Server.

Kleiner Exkurs zum absoluten Serverpfad: Wie bekomme ich den relativ schnell raus?

Folgendes im Texteditor in eine Datei schreiben und diese z.B. als „info.php“ abspeichern und dann ins Rootverzeichnis des Webspaces übertragen:

<?php 
  phpinfo();
?>

Jetzt die Datei über „domain.endung/info.php“ aufrufen. Der Serverpfad steht unter „DOCUMENT_ROOT“ im Bereich „Environment“. Danach – sofern das File nich mehr benötigt wird – die info.php wieder entfernen (Wir wollen ja nicht zu viel Infos preisgeben) 😉

Zurück zur htaccess-Datei. Die Datei nun unter dem Namen „.htaccess“ abspeichern und in das Root-Verzeichnis des zu schützenden Projektes hochladen. Achtung: Existiert bereits eine .htaccess-Datei, sollte der obige Inhalt lediglich ergänzt werden.

htpasswd erstellen

Nun zurück zur Konsole gehen und folgendes eingeben:

htpasswd -c htpasswd benutzername

Der Benutzername kann frei gewählt werden und ist später Teil der Passwortabfrage.

Im Folgenden Dialog wird nun zur Eingabe des Passwortes aufgefordert. Das Passwort zweimal eingeben und jeweils Enter drücken. Das Programm verschlüsselt nun das Passwort und erstellt eine htpasswd-Datei – genau in dem Verzeichnis aus dem über die Konsole htpasswd aufgerufen wurde.

Die Datei „htpasswd“ sollte nun in das im htaccess-File unter „AuthUserFile“ angegebene Verzeichnis auf den Server geschoben werden.

Schutz testen

Wer jetzt sein Webprojekt aufruft, sollte ein Eingabefenster mit der „Zugangskontrolle“ erhalten. That´s it! 🙂

3 Kommentare

  • SK sagt am 9. Januar 2016 um 15:33 Uhr

    Super, danke. Die php-Datei ist ja einfach. Danke, das ist nützlich! Gruß Stefan

  • SK sagt am 9. Januar 2016 um 14:50 Uhr

    Herzlichen Dank für diese kurze Anleitung. Ist schon lange her dass ich die Info brauchte, und ich wollte keinen Online-Generator für die Erstellung der .htpasswd benutzen. Von dem her war ich froh es hier nachlesen zu können. Einen kleinen Vorschlag hätte ich: Man könnte statt die htpasswd.exe in ein Systemverzeichnis zu kopieren auch einen Eintrag in den Windows $PATH aufnehmen. Interessant wäre auch noch der Inhalt der info.php, ich kann es nicht lesen, in dem Kasten steht nichts drin. Auf jeden Fall herzlichen Dank.

    • Markus sagt am 9. Januar 2016 um 15:03 Uhr

      Gerne und Danke für den Tipp – ich habe den Inhalt ergänzt.

kommentieren