Module Apache
Lorsque
le
PHP
est
compilé
en
tant
que
module
Apache
,
ce
module
hérite
des
permissions
accordées
à
l'
utilisateur
faisant
tourner
Apache
(
par
défaut
,
l'utilisateur
"nobody"
)
.
Par
exemple
,
si
vous
utilisez
PHP
pour
accéder
à
une
base
de
données
,
à
moins
que
la
base
n'
ait
un
système
de
droits
d'accès
interne
,
vous
devrez
rendre
la
base
accessible
à
l'utilisateur
"nobody
"
.
Cela
signifie
qu
'
un
script
mal
intentionné
peut
accéder
à
la
base
,
la
modifier
sans
authentification
.
Il
est
aussi
possible
qu'
un
robot
accède
à
la
page
d
'administration
,
et
détruise
toutes
les
pages
.
Vous
devez
aussi
protéger
vos
bases
de
données
avec
les
autorisations
Apache
,
ou
définir
votre
propre
modèle
d
'
accès
avec
LDAP
,
.htaccess
,
etc..
.
et
inclure
ce
code
dans
tous
vos
scripts
PHP
.
Souvent
,
lorsqu'
on
a
établi
les
droits
de
l'utilisateur
PHP
(ici
,
l'utilisateur
Apache
)
pour
minimiser
les
risques
,
on
s
'aperçoit
que
PHP
ne
peut
plus
écrire
des
virus
dans
les
fichiers
des
utilisateurs
.
Ou
encore
,
de
modifier
une
base
de
données
privée
.
Il
est
aussi
incapable
de
modifier
des
fichiers
qu
'
il
devrait
pouvoir
modifier
,
ou
effectuer
certaines
transactions
.
Une
erreur
fréquente
de
sécurité
est
de
donner
à
l
'
utilisateur
Apache
les
droits
de
superadministrateur
.
Donner
de
telles
permissions
à
l'
utilisateur
Apache
est
extrêmement
dangereux
,
et
peut
compromettre
tout
le
système
,
telle
que
l
'utilisation
des
sudo
ou
du
chroot
.
Pour
les
professionnels
de
la
sécurité
,
une
telle
utilisation
est
à
exclure
d
'
office
.
Il
existe
des
solutions
plus
simples
.
En
utilisant
open_basedir(
)
vous
pouvez
contrôler
et
restraindre
l
'accès
à
certains
dossiers
qui
pourront
être
utilisés
par
PHP
.
Vous
pouvez
aussi
des
aires
de
restrictions
Apache
,
pour
restraindre
les
activités
anonymes
liées
aux
internautes
.