Sönke Tesch: PHP & Sicherheit

Beitrag lesen

Meine MySQL-Zugangsdaten (und weitere sensible Werte) liegen in einem Verzeichnis ausserhalb des Document-Roots (sind also nicht über das WWW erreichbar).

Allerdings haben meine User die Möglichkeit eigene Homepages hochzuladen. Ich denke hierbei an den Bericht der c't, daß man per PHP die Verzeichnisstruktur und deren Inhalt auslesen kann.

In diesem Falle könnte ein böswilliger User einfach das oben genannte Script includen und so auf meine DB zugreifen oder anderen Unfug anstellen.

Das ist ein generelles Problem von PHP in der Modulversion: PHP läuft als Teil des Webbrowsers, nicht unter dem Namen des eigentlichen Benutzers. Somit sind auf Betriebssystemebene auch alle Dateien für alle Benutzer zugängig.

Die Konfiguration bietet eine Reihe Krücken, um dieses Problem zu umgehen, schau doch mal in die Anleitung: http://www.php.net/manual/de/configuration.php (safe_mode, doc_root, open_basedir). Es gibt dort, man höre und staune, sogar ein richtiges Kapitel zum Thema Sicherheit: http://www.php.net/manual/de/security.php.
Das Problem der Leute, auf die in der c't eingegangen wurde, war wohl hauptsächlich, daß sie die PHP-Anleitung nicht gelesen haben..

Gruß,
  soenk.e