Sécuriser l’environnement PHP

© Christian PAULUS. Document créé le 17 juin 2003 , mis à jour le 13 mars 2007.

Les hommes vieillissent toujours mal quand ils restent jeunes. Romain Gary (Au-delà de cette limite...)

Accueil du site > Astuces > PHP > Sécuriser l’environnement PHP

PHP / PHP 4+

Vous prêtez un peu d’espace disque de votre serveur à des développeurs ? N’hésitez pas à protéger votre environnement de travail. En effet, sans parler d’un acte de négligence, l’utilisation accidentelle de certaines commandes PHP peut facilement mettre à mal vos données.

Si vous en avez le temps, et la possibilité, installez la gestion des quotas sur le système, ou une partition réservée du disque dur. Méfiez vous des droits d’accès sur vos fichiers. Souvent les webmasters travaillant en groupe modifient les droits en écriture de leurs fichiers et dossiers en permettant l’écriture à tous (777). En attendant de pouvoir leur donner la formation nécessaire et leur faire prendre conscience des risques de sécurité qu’ils prennent en agissant de la sorte, commencez par clôturer l’espace de travail commun.

Dans le fichier de configuration PHP (php.ini), placez l’option safe_mode à on. Ceci permet déjà de sécuriser les fichiers de groupes de travail en empêchant PHP de manipuler les données qui ne lui appartiennent pas. De plus, de nombreuses fonctions ne sont disponibles qu’à certaines conditions. Par exemple, exec() ou system() ne pourront utiliser que les fonctions présentes dans le dossier précisé par l’option safe_mode_exec_dir. Ce dossier peut-être un dossier nommé "bin" dans le répertoire d’accueil PHP et on peut y placer des liens symboliques, à la mode "serveur ftp anonyme".

Si vous ne voulez ou ne pouvez pas utiliser safe_mode, l’option open_basedir permet de limiter le périmètre d’action. Par exemple,

open_basedir = "./"

empêchera l’accès aux fichiers en dehors du répertoire d’accueil PHP (document_root) pour certaines fonctions. Par exemple reafile renverra une erreur, exec("cat") par contre fonctionnera. L’option open_basedir devra donc être complétée par d’autres options pour sécuriser l’ensemble.

L’option disable_functions permet de désactiver certaines fonctions. Par exemple :

disable_functions = passthru,system

empêche l’utilisation des fonctions PHP passthru et system. L’option disable_functions est opérationnelle que vous utilisiez ou non safe_mode.

Vous trouverez plus d’information à propos de safe_mode sur http://www.php.net/manual/en/features.safe-mode.php et des conseils sur la sécurité pour votre serveur Apache PHP à http://www.php.net/manual/en/securi....

Plussoyez !

Les forums sont fermés.