PHP est un langage puissant et l'interpréteur, qu'il soit inclus
dans le serveur web ou bien compilé en version CGI,
est capable d'accéder aux fichiers, d'exécuter des commandes et d'ouvrir
des connexions réseaux. Toutes ces propriétés rendent fragile la
sécurité d'un serveur web. Le langage PHP a été pensé afin d'être
un langage beaucoup plus sécurisé pour écrire des
CGI que le Perl ou le langage C. De plus, une
sélection rigoureuse des options de compilation et d'exécution
vous permettra d'obtenir un équilibre parfait entre liberté et
sécurité.
Étant donné qu'il y a de nombreux moyens d'utiliser le langage PHP,
il y a de nombreuses directives de configuration afin d'en contrôler
le comportement. Un grand nombre d'options permettent d'utiliser PHP
dans de nombreuses situations, mais cela signifie aussi qu'il y a
certaines combinaisons d'options de compilation et d'exécution qui
fragilisent la sécurité du serveur. Ce chapitre explique comment les
différentes options de configuration peuvent être combinées, tout en
conservant une sécurité maximum.
La flexibilité de configuration de PHP est épaulée par la flexibilité
du code. PHP peut être compilé pour constituer une application serveur
complète, avec toutes les fonctionnalités d'un shell, ou il peut encore
être utilisé comme simple SSI (server side include) avec peu de risque,
dans un environnement à sécurité renforcée. La création de cet
environnement et sa sécurité est largement à la charge du développeur PHP.
Ce chapitre commence par expliquer les différentes options de configuration
et les situations dans lesquelles elles peuvent être utilisées en toute
sécurité. Puis, viennent les considérations de niveaux de sécurité, et
les conseils généraux.