Einführung
PHP ist eine mächtige Sprache, und der Interpreter, der in einen
Webserver als Modul oder als separate CGI-Version
eingebunden werden kann, kann auf Dateien zugreifen, Befehle
ausführen und Netzwerkverbindungen zu einem Server herstellen.
Diese Eigenschaften können einen Webserver unsicher machen, wenn man
es bei den Voreinstellungen belässt.
PHP wurde besonders dafür entwickelt, um eine sicherere Sprache als
Perl oder C für die Erstellung von CGI-Programmen bereitzustellen.
Mit der richtigen Wahl der Einstellungen beim Kompilieren und
zur Laufzeit bietet PHP genau die Kombination aus Freiheit und
Sicherheit, die gerade benötigt wird.
Da es sehr viele verschiedene Möglichkeiten gibt, PHP zu nutzen,
gibt es viele Konfigurationseinstellungen, die das Verhalten von
PHP beeinflussen. Eine große Auswahl an Einstellungen garantiert,
dass man PHP für viele Zwecke einsetzen kann. Allerdings
bedeutet das auch, dass es Kombinationen gibt, die eine Installation
mit nur ungenügender Sicherheit zur Folge haben.
Die Flexibilität der Konfiguration konkurriert mit der Flexibilität
in der Programmierung. Mit PHP können komplette Server Applikationen
mit allen Möglichkeiten eines Shell Benutzers erstellt werden, oder
auch nur einfache Server Side Includes mit einem minimalen Risiko in
einer streng kontrollierten Umgebung. Wie die Umgebung erstellt wird,
und wie sicher diese ist, ist zu einem großen Teil die Sache des PHP
Entwicklers.
Dieses Kapitel beginnt mit einigen generellen Ratschlägen zur Sicherheit,
erklärt die verschiedenen Kombinationen der Konfigurationseinstellungen
und unter welchen Gegebenheiten sie sicher genutzt werden können, und
beschreibt verschiedene Überlegungen zur Programmierung für verschiedene
Sicherheitsstufen.