Passer au contenu principal
Guide de sécurité phpinfo.php : Risques, bonnes pratiques et sécurisation

Guide de sécurité phpinfo.php : Risques, bonnes pratiques et sécurisation

Contenu du guide

Le fichier phpinfo.php est l'un des outils de diagnostic les plus connus des développeurs PHP et des administrateurs système. L'exécution de la fonction phpinfo() génère une page HTML détaillée affichant les directives de configuration de PHP, les modules installés, les chemins du système de fichiers et les variables d'environnement. Cependant, laisser ce fichier accessible au public sur un serveur de production en direct constitue une vulnérabilité critique de divulgation d'informations (Information Disclosure - CWE-200).

En cybersécurité, la phase de reconnaissance et de collecte d'informations est le préalable à toute attaque ciblée. Un fichier phpinfo.php accessible offre aux pirates une empreinte technique exacte de votre serveur sans aucun effort de balayage. Ce guide détaille les risques de sécurité, les données sensibles divulguées et les étapes pratiques pour désactiver et sécuriser votre environnement PHP.

Données sensibles divulguées par phpinfo.php

  • Version exacte de PHP et du serveur web : Permet d'identifier immédiatement les failles CVE connues pour cette version spécifique.
  • Chemins d'accès absolus du système : Révèle le chemin complet du répertoire racine (ex. /home/user/public_html), facilitant les attaques par inclusion locale de fichiers (LFI).
  • Directives des fonctions désactivées (disable_functions) : Indique aux pirates si des fonctions dangereuses telles que exec ou system sont exploitables.
  • Variables d'environnement et identifiants : Affiche les tableaux $_ENV et $_SERVER contenant parfois des mots de passe de base de données et des clés d'API.

Procédure de suppression et de sécurisation

1. Suppression physique du fichier

Via le gestionnaire de fichiers cPanel ou en ligne de commande SSH, supprimez immédiatement les fichiers nommés phpinfo.php ou info.php :

find /home/*/public_html -type f -name "*info*.php" -delete

2. Désactivation de la fonction dans php.ini

Ajoutez phpinfo à la directive disable_functions dans votre fichier php.ini principal :

disable_functions = phpinfo, exec, system, shell_exec, passthru

3. Blocage de l'accès via .htaccess

Intégrez les règles suivantes dans votre fichier .htaccess :

<FilesMatch "(phpinfo|info|test)\.php$">
Order Allow,Deny
Deny from all
</FilesMatch>

Hébergement sécurisé et protection de l'infrastructure

Assurez la protection globale de votre serveur en optant pour les solutions d'hébergement cloud managé de VavaHost bénéficiant de l'isolation CloudLinux LVE et du serveur LiteSpeed.

Découvrez également nos recommandations pour sécuriser vos espaces d'administration dans notre guide de sécurisation de la connexion WordPress.

Pour garantir la confidentialité des échanges, consultez notre guide complet sur les certificats SSL et le chiffrement SSL/TLS.

En résumé, désactiver et supprimer phpinfo.php est une mesure de sécurité indispensable pour protéger votre serveur contre la reconnaissance malveillante.

Analyse approfondie de l'architecture et de la conformité

L'alignement des pratiques de sécurité avec les normes internationales est indispensable pour toute organisation numérique moderne. La mise en place de politiques de contrôle d'accès strictes permet de répondre aux exigences des audits de sécurité tels que SOC 2 Type II, ISO 27001 et RGPD. L'intégration de contrôles automatisés garantit que chaque modification d'infrastructure fait l'objet d'une traçabilité complète et d'une validation systématique avant son déploiement en production.

De plus, l'adoption de solutions éprouvées réduit significativement les risques d'interception et de falsification des données. Les équipes techniques doivent procéder à des révisions régulières des configurations des serveurs web, des bases de données et des composants réseau afin d'éliminer toute vulnérabilité émergente et d'assurer une résilience maximale de la plateforme.

Analyse approfondie des directives de sécurité et vecteurs d'exploitation

Comprendre l'interaction entre les directives PHP est essentiel pour un durcissement efficace du serveur. Par exemple, la directive open_basedir limite les chemins de fichiers auxquels les scripts PHP ont le droit d'accéder. Si phpinfo() révèle que open_basedir n'est pas configuré, les attaquants exploitant une faille d'inclusion de fichier local (LFI) peuvent librement lire des fichiers système sensibles tels que /etc/passwd ou des fichiers de configuration contenant des mots de passe bruts.

De même, l'exposition de session.save_path permet aux utilisateurs malveillants sur des serveurs d'hébergement mutualisés d'inspecter le répertoire de stockage des sessions, de voler des cookies de session administrateur et de contourner les mécanismes d'authentification.

Configuration des règles ModSecurity et pare-feu d'application web (WAF)

Le déploiement de règles au niveau du pare-feu d'application web (WAF) permet de bloquer automatiquement les tentatives d'analyse malveillantes. Des directives ModSecurity personnalisées analysent les requêtes HTTP et rejettent immédiatement les accès ciblant les fichiers de diagnostic comme phpinfo.php.

De plus, la mise en place d'une limitation du débit de requêtes (Rate Limiting) sur les serveurs LiteSpeed ou Nginx empêche les robots automatisés de consommer les ressources du serveur.

Surveillance continue et audits de sécurité réguliers

La suppression du fichier phpinfo.php n'est qu'une première étape dans une stratégie de sécurité globale. Il est essentiel d'établir des audits de sécurité réguliers pour identifier de nouveaux fichiers de diagnostic accidentellement déposés lors des mises à jour de développement. Utilisez des outils comme Nikto, WPScan, ou les scanners intégrés à votre hébergement pour automatiser cette surveillance et détecter toute exposition involontaire de configuration.

Pensez également à activer les journaux d'accès HTTP et à analyser régulièrement les requêtes entrantes suspectes ciblant des chemins de fichiers courants comme /info.php, /phpinfo.php, ou /test.php. Cette vigilance proactive réduit drastiquement la fenêtre d'exposition en cas d'erreur humaine.

Séparation stricte des environnements de développement et de production

Une bonne pratique fondamentale consiste à maintenir une séparation stricte entre les environnements de développement local et les serveurs de production. Dans l'environnement local, l'utilisation de phpinfo() reste acceptable à des fins de débogage. Cependant, les pipelines de déploiement (CI/CD) doivent inclure des étapes de vérification automatique qui détectent et rejettent tout fichier de diagnostic avant la mise en production.

Configurez également expose_php = Off et display_errors = Off dans le fichier php.ini de production pour éviter que le serveur transmette des informations de version dans les en-têtes HTTP ou affiche des traces d'erreurs aux visiteurs.

Protection globale de votre hébergement web

La sécurisation de votre serveur va au-delà de la simple gestion des fichiers PHP. Assurez-vous que votre infrastructure d'hébergement intègre des protections multicouches. Découvrez nos getLocale() . '/plans') . ''">offres d'hébergement cloud sécurisé de VavaHost incluant des environnements isolés et des outils de surveillance en temps réel pour protéger vos applications web.

Prêt à commencer ?

Choisissez la bonne offre et lancez votre hébergement sans frais d'installation. Résiliez à tout moment.

Lancez Votre Site