Wenn PHP als Apache-Modul installiert wird, erbt es die Berechtigungen des Apache-Benutzers (normalerweise „niemand“). Dies hat einige Auswirkungen auf die Sicherheit und Authentifizierung. Wenn Sie beispielsweise PHP verwenden, um auf eine Datenbank zuzugreifen, muss der Benutzer „nobody“ auf die Datenbank zugreifen können, es sei denn, die Datenbank verfügt über eine eigene Zugriffskontrolle. Das bedeutet, dass ein bösartiges Skript auf die Datenbank zugreifen und diese ändern kann, ohne einen Benutzernamen und ein Passwort anzugeben. Es ist durchaus möglich, dass ein Webspider auf die Verwaltungsseite einer Datenbank stößt und alle Datenbanken löscht. Sie können dieses Problem durch die Apache-Authentifizierung vermeiden oder Ihr eigenes Zugriffsmodell mithilfe von Technologien wie LDAP und .htaccess entwerfen und diese Codes als Teil des PHP-Skripts verwenden.
Sobald die Sicherheit ein Niveau erreicht, bei dem das von PHP-Benutzern (hier Apache-Benutzer) getragene Risiko minimal ist, kann PHP normalerweise einen Punkt erreicht haben, an dem es das Schreiben von Dateien in das Benutzerverzeichnis verhindert oder den Zugriff verbietet Änderung. Die Datenbank hat den Punkt erreicht. Dies bedeutet, dass sie abgelehnt wird, unabhängig davon, ob es sich um eine normale oder eine abnormale Datei handelt, ob es sich um eine normale Datenbanktransaktion oder eine böswillige Anfrage handelt.
Ein häufiger Fehler, der sich nachteilig auf die Sicherheit auswirkt, besteht darin, Apache Root-Rechte zu gewähren oder Apache auf andere Weise leistungsfähigere Funktionen zu gewähren.
Die Erhöhung der Berechtigungen des Apache-Benutzers auf Root ist äußerst gefährlich und kann die Sicherheit des gesamten Systems gefährden. Wenn Sie also kein Sicherheitsexperte sind, denken Sie niemals über die Verwendung von su, chroot oder die Ausführung mit Root-Rechten nach.
Darüber hinaus gibt es einige einfachere Lösungen. Sie können beispielsweise open_basedir verwenden, um einzuschränken, welche Verzeichnisse von PHP verwendet werden können. Sie können auch Apache-spezifische Zonen einrichten, um alle Webaktivitäten auf Nicht-Benutzer- und Nicht-Systemdateien zu beschränken.