studyklar
IProg · Klausur 3 · Aufgabe 2

Verzeichnisse schützen mit .htaccess

Ein Webserver zeigt auf Wunsch den Inhalt ganzer Ordner, und jeder kann jede Datei abrufen. Diese Aufgabe fragt, wie man beides abstellt. Rechts steht ein Beispiel-Ordnerbaum, in den Schritt für Schritt die nötigen Dateien kommen. Mit Weiter geht es voran.

Die Aufgabe

2) Verzeichnisschutz (4 Punkte)

a) Wie können sie wirkungsvoll erreichen, dass in einer Verzeichnishierachie in bestimmten Unterbäumen kein Directory-Listing möglich ist?

b) Andere Unterverzeichnisse sollen erst nach Eingabe einer passenden Kennung und Passwort angezeigt werden. Was ist dazu notwendig?

Gemeint ist der Webserver Apache, der bei XAMPP mitläuft. Ein Directory-Listing (Verzeichnisliste) ist die Seite, die Apache zeigt, wenn man einen Ordner ohne Startseite aufruft: eine Liste aller Dateien darin.

Gesucht sind zwei Antworten in Stichworten. (a) Wie verhindert man die Liste für ganze Unterbäume, also einen Ordner samt allen Unterordnern? (b) Was braucht man, damit ein Ordner erst nach Kennung und Passwort aufgeht?

Merke: Apache liest in jedem Ordner eine Steuerdatei mit festem Namen. Was dort steht, gilt für diesen Ordner und alles darunter.
  1. Teil a: sehen, was ein Directory-Listing ist.
  2. Die Steuerdatei mit der Zeile, die es abschaltet.
  3. Warum das für den ganzen Unterbaum wirkt.
  4. Teil b: die Zeilen für den Passwortschutz.
  5. Die Datei mit Kennungen und Passwörtern.
  6. Was der Browser dabei erlebt.

Was ein Directory-Listing ist

Index of /intern
  Parent Directory
  notizen.txt
  protokolle/

Ruft jemand /intern/ auf, sucht Apache dort eine Startseite wie index.html. Fehlt sie, baut Apache eine Seite „Index of /intern“ mit allen Dateien und Unterordnern („Parent Directory“ führt eine Ebene nach oben).

So sieht jeder, welche Dateien es gibt, auch solche, die auf keiner Seite verlinkt sind. Das soll für bestimmte Unterbäume nicht gehen.

Die Steuerdatei .htaccess

# htdocs/intern/.htaccess
Options -Indexes

.htaccess ist eine Textdatei, die man in einen Ordner legt. Apache liest sie bei jeder Anfrage an diesen Ordner und befolgt die Anweisungen darin. So steuert man Zugriffsrechte und Einstellungen je Ordner, ohne die Konfiguration des ganzen Servers anzufassen.

Options schaltet Funktionen eines Ordners an oder ab. Die Funktion für die Dateiliste heißt Indexes. Das Minus davor schaltet sie ab.

Noch 5 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1

htdocs/                (Wurzel der Webseite)
├── index.html
├── intern/
│   ├── notizen.txt
│   └── protokolle/
│       └── 2021.txt
└── admin/
    └── daten.txt
LegendeEin Beispiel-Ordnerbaum auf dem Webserver: intern/ soll ohne Dateiliste sein, admin/ nur mit Passwort.