Geïnstalleerd als een Apache module
Als
PHP
wordt
gebruikt
als
een
Apache
module
,
dan
erft
het
alle
permissies
van
de
gebruiker
waaronder
Apache
draait
.
(
Dit
is
gewoonlijk
nobody
)
.
Dit
heeft
verschillende
implicaties
op
beveiliging
en
authorisatie
.
Bijvoorbeeld
,
als
je
PHP
gebruikt
om
een
database
te
benaderen
(
en
de
database
geen
ingebouwde
toegangscontrole
heeft
)
dan
zal
de
database
toegankelijk
moeten
worden
gemaakt
voor
de
"nobody
"
gebruiker
.
Dit
betekend
dat
een
kwaadwillend
script
toegang
kan
krijgen
tot
de
database
zonder
enige
vorm
van
authenticatie
.
Het
is
helemaal
mogelijk
dat
een
web
spider
langs
een
database
administratie
pagina
komt
en
daarmee
alle
database
verwijderd
.
Je
kunt
dit
beveiligen
met
Apache
'
s
authenticatie
mechanismen
,
maar
het
is
ook
mogelijk
jouw
toegangs
policies
aan
te
passen
voor
gebruik
met
LDAP
,
.htaccess
bestanden
,
e.d
.
en
deze
code
dan
toe
te
voegen
als
onderdeel
van
jouw
PHP
scripts
.
Vaak
,
nadat
de
beveiliging
zo
is
geregeld
dat
de
PHP
gebruiker
,
(
in
dit
voorbeeld
,
de
apache
gebruiker
)
weinig
risico
's
met
zich
meebrengt
,
is
PHP
nu
zo
afgeschermd
dat
het
niet
mogelijk
is
om
kwaardaardige
dingen
te
doen
in
een
gebruikers
directory
.
Een
veelvuldig
gemaakte
beveiligings
dout
op
dit
punt
is
het
laten
runnen
van
Apache
met
root
permissies
.
Het
geven
van
root
permissies
aan
Apache
is
enorm
gevaarlijk
en
kan
het
totaly
systeem
onveilig
maken
,
zo
het
gebruik
van
sudo
,
chroot
,
of
het
laten
runnen
van
Apache
als
root
,
wordt
absoluut
afgeraden
aan
personen
die
geen
beveiligings
guru
zijn
.