&reftitle.intro;
PHP est un langage puissant et l'interpréteur, qu'il soit inclus
dans le serveur web en tant que module 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. PHP a été conçu comme
un langage beaucoup plus sécurisé pour écrire des programmes
CGI que le Perl ou le langage C, et, avec une
sélection rigoureuse des options de compilation et d'exécution
et de bonnes habitudes de programmation, il vous permettra d'obtenir un équilibre
parfait entre liberté et sécurité.
Étant donné qu'il existe de nombreux moyens d'utiliser le langage PHP,
vous trouverez de nombreuses directives de configuration permettant d'en contrôler
le comportement. Un grand nombre d'options permet d'utiliser PHP
dans de nombreuses situations, mais signifie aussi que
certaines combinaisons d'options de compilation et d'exécution peuvent
fragiliser 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 utilisé pour construire des applications serveur
complètes, avec tous les pouvoirs d'un utilisateur shell, ou il peut
être utilisé pour de simples SSI (server side include)
avec peu de risque dans un environnement à sécurité renforcée. La
création de cet environnement et sa sécurisation sont largement à la charge
du développeur PHP.
Ce chapitre commence par quelques conseils généraux de sécurité, explique
les différentes options de configuration et les situations dans lesquelles
elles peuvent être utilisées en toute sécurité, puis décrit quelques
points à considérer lorsque l'on programme pour différents niveaux de
sécurité.