Verwendung als Apache-Modul
   
    Wenn PHP als Apache-Modul eingesetzt wird, übernimmt es
    die Benutzerrechte des Apache (üblicherweise die des Users "nobody"). Das
    hat verschiedene Auswirkungen auf Sicherheit und Authentifizierung. Wenn Sie
    beispielsweise via PHP auf eine Datenbank zugreifen, müssen Sie
    dem Benutzer "nobody" Zugriffsrechte auf die Datenbank erteilen, es sei
    denn, diese Datenbank hat eine integrierte Zugriffskontrolle. Das
    heißt, dass ein böswilliges Skript auch ohne Benutzerkennung und
    Passwort auf die Datenbank zugreifen und sie verändern könnte. Es ist
    durchaus möglich, dass ein Web-Spider über die Webseite eines
    Datenbankadministrators stolpert und alle Ihre Datenbanken löscht.
    Sie können sich dagegen mit Apache-Authentifizierung schützen, oder
    ein eigenes Zugangsmodell unter Verwendung von LDAP, .htaccess Dateien
    etc. entwerfen, und diesen Code als Teil Ihrer
    PHP-Skripte einbinden.
   
   
    Ist erst einmal eine Sicherheitsstruktur bis zu dem Punkt eingerichtet, an
    dem der PHP-User (in diesem Falle der Apache-User) nur
    noch ein geringes Risiko darstellt, hat man meist die Situation, dass
    PHP gehindert wird, beliebige Dateien in das
    Benutzerverzeichnis zu schreiben. Oder vielleicht ist PHP dann nicht mehr in
    der Lage, auf Datenbanken lesend oder verändernd zuzugreifen. In gleicher
    Weise wird auch verhindert, "gute" oder "bösartige" Dateien zu schreiben,
    oder "gute" bzw. "bösartige" Datenbanktransaktionen durchzuführen.
   
   
    Ein an diesem Punkt oft geöffnetes Sicherheitsloch ist die Zuweisung von
    Root-Rechten an den Apache-Prozess oder die Ausweitung der Rechte des Apache
    auf anderem Wege.
   
   
    Die Ausweitung der Benutzerrechte für Apache auf root ist extrem
    gefährlich und kann das gesamte System kompromittieren, daher sollten
    Prozesse, die wie sudo oder chroot mit Rootrechten arbeiten, niemandem
    zugänglich sein, der kein Sicherheitsprofi ist.
   
   
    Es gibt deutlich einfachere Lösungen. Mit
    open_basedir können Sie
    kontrollieren, welche Verzeichnisse PHP benutzen darf
    oder nicht. Sie können auch einen Bereich nur für Apache einrichten, um alle
    webbasierten Aktivitäten auf dem System oder nicht dem Benutzer gehörende
    Dateien zu verhindern.