PHP es un poderoso lenguaje e intérprete, ya sea incluido
como parte de un servidor web en forma de módulo o ejecutado
como un binario CGI separado, es capaz de
acceder a archivos, ejecutar comandos y abrir conexiones de red en
el servidor. Estas propiedades hacen que cualquier cosa que sea
ejecutada en un servidor web sea insegura por naturaleza. PHP
está diseñado específicamente para ser un
lenguaje más seguro para escribir programas CGI que Perl o
C, y con la selección correcta de opciones de
configuración en tiempos de compilación y
ejecución, y siguiendo algunas prácticas correctas de
programación, PHP le puede dar la combinación precisa
de libertad y seguridad que usted necesita.
Ya que hay muchas maneras de utilizar PHP, existen varias opciones
de configuración diseñadas para controlar su
comportamiento. Un amplio rango de opciones le garantizan que pueda
usar PHP para muchos propósitos distintos, pero
también quiere decir que hay combinaciones de éstas
opciones y configuraciones de servidor que pueden resultar en un
entorno inseguro.
El nivel de flexibilidad en la configuración de PHP se
compara quizás solo con su flexibilidad de desarrollo. PHP
puede ser usado para escribir aplicaciones completas de servidor,
con todo el poder de un usuario de un intérprete de
comandos, o puede ser usado para inclusiones simples del lado del
servidor con muy poco riesgo en un entorno minuciosamente
controlado. Cómo construir ese entorno, y qué tan
seguro es, básicamente depende del desarrollador PHP.
Este capítulo comienza con algunas recomendaciones generales
de seguridad, explica las diferentes combinaciones de opciones de
configuración y las situaciones en las que pueden ser usadas
con seguridad, y describe diferentes consideraciones a la hora de
programar para diferentes niveles de seguridad.