.htaccess Verzeichnisschutz für Profis

In den letzten Wochen habe ich sehr oft mit der .htaccess Datei für diverse Webprojekte zu tun. Dabei gab es teils recht unterschiedliche Anforderungen, alle mussten aber in eben jener Datei abgebildet werden. Ich zeige euch wie man einen Verzeichnisschutz für alle Unterverzeichnisse oder nur ein bestimmten Ordner einrichtet, wie man die Zugriffskontrolle auf IP Adressen einschränkt oder diese ausnimmt und wie man diese für Rewrite Pfade konfiguriert.

htaccess Verzeichnisschutz für Profis

.htaccess Verzeichnisschutz für Profis

Die .htaccess Datei ist ein Konfigurationsdatei, mit der man die Standard Webserverkonfiguration für die eigenen Projekte in der Ordnerhierarchie anpassen und verändern kann. Vorraussetzung ist ein kompatibler Webserver wie zum Beispiel ein Apache.

Verzeichnisschutz

Mit einem Verzeichnisschutz kann man einen Ordner oder die ganze root URL vor unberechtigten Zugriff schützen. Anwendungsfälle sind:

  • einen Entwicklungsserver vor Bots und neugierigen Kunden verbergen
  • Logins / Backend Zugänge die über eine separate Datei eines Unterordners funktionieren schützen (z.B. wp-admin bei WordPress)
  • Zugriff auf Dateien in Ordner komplett verbieten (z. B. für Logs, Programmcode, …)

Diese Zugriffsbeschränkung wird folgendermaßen eingestellt:

In dem Beispiel betrifft der Verzeichnisschutz das komplette Verzeichnis und alle Unterverzeichnisse, sofern diese nicht eine eigene .htaccess Datei besitzen in denen dieser wieder aufgehoben wird. Man kann den Schutz auch nur für eine bestimmte Datei oder ein Verzeichnis setzen. Das Beispiel zeigt wie man das Login von WordPress schützt:

Das funktioniert in diesem Fall, da das WordPress Login über ein separates Skript funktioniert.

Verzeichnisschutz für Rewrite Pfade

Ein Spezialfall des Verzeichnisschutz stellen über Rewrite geänderte Pfade dar. Mit dem Rewrite Modul kann man unter Apache eine beliebige URL Struktur erstellen, beispielsweise ist die URL dieses Beitrags im Browser zu sehen, diese entspricht aber nicht unbedingt einem physischen Pfad auf dem Server. Man muss also einen Verzeichnisschutz setzen, obwohl es weder Verzeichnis noch Datei dafür gibt. Geht das überhaupt?

Glücklicherweise weiß .htaccess auch dafür eine Definition. Beim e-Commerce Shopsystem Magento loggt sich der Benutzer über den über das Rewrite Modul erstellten Pfad domain.com/admin ein. Es gibt im Root keinen admin Ordner und auch keine separate admin.php Datei. Wir schützen dieses wie folgt:

Man beachte, dass eine Variable über die Request_URI erstellt. Die require_auth Variable ist immer dann true, wenn man /admin aufruft. Über die Allow from Bedingung wird für alle /admin URLs der Verzeichnisschutz gesetzt.

IP Adressen Zugang gewähren

Ein Verzeichnisschutz ist eine tolle Sache. Dieser wird aber mühsam, wenn man sich mehrmals täglich einloggen muss oder noch schlimmer über automatische Systeme auf die Seite zugreifen muss (man denke an Schnittstellen wie SOAP). Für diesen Fall kann man den Verzeichnisschutz für bestimmte IP Adressen oder IP Adressbereiche deaktivieren, also den Zugriff erlauben. Das funktioniert wie folgt:

In diesem Fall würde für die IP Adresse 63.219.30.130 nie eine Abfrage des Verzeichnisschutzes gemacht werden.

Fazit

Für einen Webentwickler oder Webprogrammierer ist es oft wichtig sich auch mit Administration des Servers zu beschäftigen. Die .htaccess Datei ist dabei eine Schnittstelle um die Konfiguration des Webservers anzupassen. Man kann damit beispielsweise mit dem Verzeichnisschutz bereits sehr viele unterschiedliche Dinge tun, die teilweise auch recht komplex sind.

Welche speziellen .htaccess Verzeichnisschutz habt ihr so verwendet?

(Visited 1.066 times, 1 visits today)

Das könnte auch interessant sein...

2 Antworten

  1. olaf uecker sagt:

    Wie sieht es mit Nginx aus? Wäre nur fair das auch zu beschreiben.

    MfG

    OUE

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.