senäh

17senäh und so…

Code Snippet Thumb

Zend Framework
01. Jun 2012
Kommentare: 0

Zend Framework: Zugriff auf die application.ini verhindern

Kategorien: Zend Framework | 01. Jun 2012 | Kommentare: 0

Beschäftigt wie eh und je reicht es heute lediglich für einen kurzen Hinweis von der senäh’schen Volksfront. Es geht um das ggf. notwenige Absichern einer Zend Framework (=ZF) Applikation. Konkret meine ich das Verhindern des Zugriffs auf die application.ini.

Warum den Zugriff verweigern?

Weil dort mitunter sensible Konfigurationsdaten zu finden sind, beispielsweise Zugangsdaten für die Datenbank. So einfach.

Wann bin ich betroffen?

Um das zu verdeutlichen, schauen wir uns einen typischen – wenn auch vereinfachten – Verzeichnisbaum einer ZF-Installation an.

  • application
    • configs
      • application.ini
    • controllers
    • models
    • services
    • views
    • Bootstrap.php
  • library
  • public
    • index.php

Alle Aufrufe werden auf die index.php im public-Ordner umgeleitet. Die erläuterte Gefahr bestehlt genau dann, wenn man über die URL den public-Ordner hinauf wandern und sich somit im Verzeichnis bewegen kann.

Zum Verständnis ein Beispiel

Ist eure Webseite unter www.example.org erreichbar, braucht ihr euch keine Sorgen machen. Das public-Verzeichnis stellt hier quasi den/die/das Root dar, weswegen ein Stöbern in der Verzeichnisstruktur der Applikation nicht möglich ist.

Die Probleme beginnen, sobald eure Seite beispielsweise unter www.example.org/public/ aufgerufen wird. In dem Fall kann ein Benutzer einfach www.example.org/application/configs/application.ini eingeben und bekommt die gewünschte Datei im Klartext zu sehen.

Wie kann ich diese Lücke schließen?

Sehr einfach, das Zauberwort heißt .htaccess. Legt eine solche im application-Verzeichnis an und füllt sie mit folgenden 2 Zeilen:

Order deny,allow
Deny from all

Versucht ein potentieller Konfigurationsdatenspäher (was ein Wort) nun über die URL auf die so wertvolle application.ini zuzugreifen, bekommt er einen 403 Forbidden Fehler. Ziel erreicht.

Autor: Enno

Ich bin Enno. PHP ist mein Ding, aber auch alles Neue rund um die Themen HTML5, CSS3 & Co finde ich interessant. Ich mag es Leuten zu helfen und mein Wissen weiterzugeben. Sollte dir mein Beitrag gefallen haben, lass doch nen Kommentar da oder benutze einen der Social Buttons, um deinen Dank auszudrücken ;)