Apache-Modul
Wenn
PHP
als
Apache-Modul
eingesetzt
wird
,
übernimmt
es
die
Benutzerrechte
des
Apache
(
üblicherweise
user
"nobody"
)
.
Das
hat
verschiedene
Auswirkungen
auf
Sicherheit
und
Authentifizierung
,
z.B.
:
Wenn
Sie
PHP
zum
Zugriff
auf
eine
Datenbank
benutzen
,
es
sei
denn
diese
Datenbank
hat
eine
integrierte
Zugriffskontrolle
,
müssen
Sie
dem
Benutzer
"
nobody
"
Zugriffsrechte
auf
die
Datenbank
erteilen
.
Das
heißt
,
dass
ein
böswilliges
Skript
auch
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
.
Es
wurde
festgestellt
,
dass
wenn
einmal
die
Sicherheitsmaßnahmen
so
weit
eingerichtet
sind
dass
dem
PHP
User
(
in
diesem
Fall
ein
Apache
User
)
nur
mehr
ein
geringes
Risiko
bleibt
,
PHP
daran
gehindert
wird
,
virenverseuchte
Dateien
in
das
Benutzerverzeichnis
zu
schreiben
.
Oder
vielleicht
wurde
es
auch
daran
gehindert
,
auf
Datenbanken
zuzugreifen
oder
diese
gar
zu
verändern
.
In
gleicher
Weise
wird
auch
davor
abgehalten
,
"
gute
"
oder
"bösartige
"
Dateien
zu
schreiben
,
oder
"gute
"
bzw
.
"bösartige
"
Datenbanktransaktionen
durchzuführen
.
Ein
häufig
gemachter
Fehler
in
Punkto
Sicherheit
ist
Apache
Root-Rechte
zu
erteilen
,
oder
die
Möglichkeiten
von
Apache
in
einer
anderen
Weise
auszuweiten
.
Die
Ausweitung
der
Benutzerrechte
für
Apache
auf
root
ist
sehr
gefährlich
,
und
kann
dem
gesamten
System
schaden
,
denn
mit
sudo
,
chroot
,
oder
anderwärtig
als
root
zu
arbeiten
sollte
niemand
anders
als
den
Sicherheitsprofis
überlassen
werden
.
Es
gibt
auch
ein
paar
einfachere
Lösungen
.
Mit
open_basedir(
)
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
nicht-Benutzer
-
bzw
.
nicht-System-Dateien
einzuschränken
.