
Auditeur automatisé de configuration PHP qui analyse php.ini pour les mauvaises configurations de sécurité, prend en charge les modes CLI et web, et produit des résultats en texte, HTML ou JSON.
Vérifie la configuration PHP actuelle pour d'éventuelles failles de sécurité.
Accédez simplement à ce fichier depuis votre serveur web ou exécutez-le en CLI.
Ce logiciel a été écrit par Ben Fuhrmannek, SektionEins GmbH, dans le but d'automatiser les vérifications php.ini et de passer plus de temps sur des tâches agréables.
CLI : Il suffit d'appeler php phpconfigcheck.php. C'est tout. Ajoutez -a pour voir également les résultats cachés, -h pour une sortie HTML et -j pour une sortie JSON.
WEB : Copiez ce script dans n'importe quel répertoire accessible par votre serveur web, par exemple votre racine de documents. Voir aussi 'Protections' ci-dessous.
La sortie en mode non-CLI est HTML par défaut. Ce comportement peut être modifié en définissant la variable d'environnement PCC_OUTPUT_TYPE=text ou PCC_OUTPUT_TYPE=json.
Certains cas de test sont cachés par défaut, notamment les résultats ignorés, ok et inconnus/non testés. Pour afficher tous les résultats, utilisez phpconfigcheck.php?showall=1. Cela ne s'applique pas à la sortie JSON, qui renvoie tous les résultats par défaut.
Pour contrôler le format de sortie en mode WEB, utilisez phpconfigcheck.php?format=..., où la valeur de format peut être text, html ou json. Par exemple : phpconfigcheck.php?format=text. Le paramètre format a priorité sur PCC_OUTPUT_TYPE.
La plupart du temps, il est bon de garder pour soi les problèmes liés à la sécurité, comme votre configuration PHP. Les protections suivantes ont été mises en œuvre :
Vérification mtime : Ce script cesse de fonctionner en mode non-CLI au bout de deux jours. La réactivation de la vérification peut être faite par touch phpconfigcheck.php ou en copiant à nouveau le script sur votre serveur (par exemple via SCP). Cette vérification peut être désactivée en définissant la variable d'environnement : PCC_DISABLE_MTIME=1, par exemple SetEnv PCC_DISABLE_MTIME 1 dans le .htaccess d'Apache.
Vérification de l'IP source : Par défaut, seul localhost (127.0.0.1 et ::1) peut accéder à ce script. D'autres hôtes peuvent être ajoutés en définissant PCC_ALLOW_IP sur votre adresse IP ou un motif générique, par exemple SetEnv PCC_ALLOW_IP 10.0.0.* dans .htaccess. Vous pouvez également choisir d'accéder à votre serveur web via un transfert de port SSH, par exemple ssh -D ou ssh -L.
Fonctions désactivées : Ce script a besoin de quelques fonctions pour fonctionner correctement, telles que ini_get() et stat(). Si l'une de ces fonctions est sur liste noire (ou non whitelistée), l'exécution échouera ou produira une sortie invalide. Dans ces cas, il est possible de mettre temporairement Suhosin en mode simulation et d'omettre disable_functions. Pour rester prudent, une configuration de sécurité assouplie peut être faite avec .htaccess dans un répertoire séparé. De plus, ce script peut être appelé en ligne de commande avec la configuration de votre serveur web, par exemple php -n -c /etc/.../php.ini phpconfigcheck.php.
CLI : Les anciennes versions de PHP ne connaissent pas le nom SAPI 'cli' et utilisent une sortie de style CGI même en CLI. Solution de contournement : PCC_OUTPUT_TYPE=text /opt/php/php-5.1.6/bin/php phpconfigcheck.php
Cet outil vous aidera uniquement à configurer un environnement PHP sécurisé. Rien d'autre. Votre installation, logiciel ou toute configuration associée peut toujours être vulnérable, même si la sortie de cet outil suggère le contraire.