Sommaire
Sécurité
Considérations générales
Binaires CGI
Module Apache
Sécurité des fichiers
Rapport d'erreur
Utilisation des variables HTTP
Données transmises par les internautes
Masquer PHP
Etre à jour
|
3.4.3 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.
|