Rechercher une fonction PHP

Installé en tant que module Apache

Lorsque PHP est utilisé en tant que module Apache, celui-ci hérite des permissions accordées à l'utilisateur faisant tourner Apache (par défaut, l'utilisateur "nobody"). Ceci a plusieurs impacts sur la sécurité et les autorisations. 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 la rendre accessible à l'utilisateur "nobody". Cela signifie qu'un script mal intentionné peut accéder à la base et la modifier, sans identification. Il est même possible qu'un robot accède une page d'administration, et détruise toutes les bases de données. Vous pouvez vous protéger contre cela avec les autorisations Apache, ou définir votre propre modèle d'accès en utilisant LDAP, des fichiers .htaccess, etc. et inclure ce code dans 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 de fichiers dans les répertoires des utilisateurs. Ou encore, qu'il ne peut plus accéder à, ou modifier, une base de données privée. En somme, les sécurités mises en place empêchent à la fois l'écriture de bons et de mauvais fichiers, en même temps que les bonnes et mauvaises opérations en bases de données.

Arrivé là, une erreur de sécurité fréquente est de donner à l'utilisateur Apache les droits de superadministrateur ("root"), ou d'accroitre les possibilités d'Apache d'une quelconque autre façon.

Donner de telles permissions à l'utilisateur Apache est extrêmement dangereux, et pourrait compromettre tout le système ; en conséquence, l'utilisation de sudo, de chroot, ou de toute autre solution permettant de fonctionner en tant que superadministrateur ("root"), ne devrait pas être envisagée par toute personne qui ne soit pas experte en sécurité.

Il existe des solutions plus simples. En utilisant open_basedir, vous pouvez contrôler et restreindre les dossiers qui seront accessibles par PHP. Vous pouvez aussi créer des aires de restrictions Apache, pour limiter les activités en provenance du web à des fichiers qui ne soient en rapport ni avec des utilisateurs, ni avec le système.

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-security.apache.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut