
Auditor de configuración PHP automatizado que analiza php.ini en busca de malas configuraciones de seguridad, admite modos CLI y web, y genera resultados en texto, HTML o JSON.
Comprueba la configuración actual de PHP en busca de posibles fallos de seguridad.
Simplemente accede a este archivo desde tu servidor web o ejecútalo en la CLI.
Este software fue escrito por Ben Fuhrmannek, SektionEins GmbH, con el objetivo de automatizar las comprobaciones de php.ini y dedicar más tiempo a tareas alegres.
CLI: Simplemente ejecuta php phpconfigcheck.php. Eso es todo. Añade -a para ver también los resultados ocultos, -h para salida HTML y -j para salida JSON.
WEB: Copia este script a cualquier directorio accesible por tu servidor web, por ejemplo, tu raíz de documentos. Consulta también 'Medidas de seguridad' más abajo.
La salida en modo no CLI es HTML por defecto. Este comportamiento se puede cambiar estableciendo la variable de entorno PCC_OUTPUT_TYPE=text o PCC_OUTPUT_TYPE=json.
Algunos casos de prueba están ocultos por defecto, específicamente los omitidos, correctos y desconocidos/no probados. Para mostrar todos los resultados, usa phpconfigcheck.php?showall=1. Esto no aplica a la salida JSON, que devuelve todos los resultados por defecto.
Para controlar el formato de salida en modo WEB, usa phpconfigcheck.php?format=..., donde el valor de format puede ser text, html o json. Por ejemplo: phpconfigcheck.php?format=text. El parámetro format tiene prioridad sobre PCC_OUTPUT_TYPE.
La mayoría de las veces es buena idea mantener los problemas relacionados con la seguridad, como tu configuración de PHP, en privado. Se han implementado las siguientes medidas de seguridad:
comprobación de mtime: Este script deja de funcionar en modo no CLI después de dos días. Se puede reactivar la comprobación mediante touch phpconfigcheck.php o copiando el script nuevamente a tu servidor (p.ej., mediante SCP). Esta comprobación se puede deshabilitar estableciendo la variable de entorno: PCC_DISABLE_MTIME=1, por ejemplo, SetEnv PCC_DISABLE_MTIME 1 en el .htaccess de Apache.
comprobación de IP de origen: Por defecto solo localhost (127.0.0.1 y ::1) puede acceder a este script. Se pueden añadir otros hosts estableciendo PCC_ALLOW_IP a tu dirección IP o un patrón comodín, p.ej., SetEnv PCC_ALLOW_IP 10.0.0.* en .htaccess. También puedes optar por acceder a tu servidor web mediante reenvío de puertos SSH, p.ej., ssh -D o ssh -L.
funciones deshabilitadas: Este script necesita algunas funciones para funcionar correctamente, como ini_get() y stat(). Si una de estas funciones está en la lista negra (o no en la lista blanca), la ejecución fallará o producirá una salida no válida. En estos casos es posible poner temporalmente a Suhosin en modo simulación y omitir disable_functions. Para estar seguro, se puede hacer una configuración de seguridad relajada con .htaccess en un directorio separado. Además, este script puede ejecutarse desde la línea de comandos con la configuración de tu servidor web, p.ej., php -n -c /etc/.../php.ini phpconfigcheck.php.
CLI: Las versiones antiguas de PHP no conocen el nombre de SAPI 'cli' y usan salida estilo CGI incluso en CLI. Solución alternativa: PCC_OUTPUT_TYPE=text /opt/php/php-5.1.6/bin/php phpconfigcheck.php
Esta herramienta solo te ayudará a configurar un entorno PHP seguro. Nada más. Tu configuración, software o cualquier configuración relacionada puede seguir siendo vulnerable, incluso si la salida de esta herramienta sugiere lo contrario.