Verzeichnis ohne Zugriff von außen

Es gibt Verzeichnisse auf dem Server, die durch eine URL über den Browser angesprungen werden können. Sie liegen also unter dem Hauptverzeichnis der entsprechenden Domain. Gibt nun z.B. jemand direkt ein www.example.com/libs/auth.php, wird die Datei auth.php ausgeführt. Wenn hier ausführbarer Programmcode liegt (der nicht in Funktionen oder in Objekte steckt), wird dieser ausgeführt. Das Programm liefert dann sein Ergebnis zurück. So ist eine Analyse für den Angreifer unter Umständen sehr viel einfacher. Liegt diese Datei allerdings oberhalb des Hauptverzeichnisses der Domain, ist diese nur vom PHP-Programm aufrufbar, aber nicht direkt von außen. Das bringt mehr Sicherheit.

Beispiel einer angenommenen Serverstruktur:

  • htdocs (hierauf greift der Server bei Aufruf der Domain zu)
  • libs

Im PHP-Programm wird nun die im Verzeichnis libs befindliche Datei eingebunden durch:

PHP-Quellcode
require '../libs/entsprechendedatei.php';

Selbst wenn der Angreifer die Namen und das Verzeichnis der Datei kennt, kann er nicht direkt darauf zugreifen.

Verzeichnis ohne Außenzugang auf Server einrichten

Bei den meisten Providern ist es möglich, das Verzeichnis anzulegen, das bei Aufruf der Domain genutzt wird (sprich in der die Startseite index.htm bzw. index.php liegt). Im folgenden Beispiel sehen Sie die Einrichtung für die Domain www.php-kurs.com – auf dem Server wurde ein Verzeichnis angelegt mit dem Namen /www.php-kurs.com – auch wenn das jetzt irritierend erscheint, wenn das Verzeichnis identisch wie die Domain benannt ist. Es könnte auch „php-kurs-verzeichnis“ benannt sein.

Die zweite unkenntlich gemachte Domain liegt zu Beispielzwecken auf dem ursprünglichen Root-Verzeichnis. Standardmäßig richten die meisten Provider dies auch so ein, da es den wenigsten Erklärungsbedarf erfordert.

Verzeichnis für Domain bei Webhoster anlegen
Verzeichnis für Domain bei Webhoster anlegen

Bei 1und1 geht das Einrichten des Verzeichnisses unter dem Punkt "Verwendungsart" und dort "Verwendungsart bearbeiten". Das Heimatverzeichnis kann nun eingerichtet werden.

Durch das Verzeichnis auf dem Server kann nun von Anwendungen bei der Domain www.php-kurs.com aus auf Verzeichnisse auf dem Server zugegriffen werden, die nicht durch die Eingabe des Domainnamens im Browser erreicht werden können. So gibt es z.B. auf dem Server ein Verzeichnis

/logindaten
/www.php-kurs.com

Ein PHP-Programm, das im Verzeichnis "/www.php-kurs.com" liegt, nun über ...

PHP-Quellcode
require ('../logindaten/dateiname.inc.php');

... Dateien über require einbinden.