1. Erreurs PHP : message générique + journalisation
Provoquer la même erreur que sur la
version vulnérable, mais avec
display_errors = Off et l'erreur interceptée par un
try/catch.
Ce que voit l'administrateur dans les journaux (error_log), jamais l'utilisateur
[2026-06-15 01:42:33] Erreur interne : Call to undefined function fonction_qui_n_existe_pas_du_tout() dans /var/www/html/OWASP/A06-Security-Misconfiguration/info_securise.php:26
2. Page de diagnostic phpinfo()
Le fichier phpinfo_vulnerable.php n'a pas d'équivalent ici : ce type de page
ne doit jamais être présent dans un environnement accessible publiquement.
Si un diagnostic est nécessaire, il doit être protégé par authentification et restreint
par adresse IP, puis supprimé après usage.
3. Checklist de durcissement
| Paramètre | Recommandation |
|---|---|
display_errors (php.ini) | Off en production ;
log_errors = On + error_log vers un fichier surveillé. |
expose_php (php.ini) | Off - retire l'en-tête
X-Powered-By. |
ServerTokens / ServerSignature (Apache) |
ServerTokens Prod et ServerSignature Off - l'en-tête
Server ne montre plus la version exacte. |
Options Indexes (Apache) | Options -Indexes -
désactive le listing de répertoires. |
| Fichiers de diagnostic / exemples | Supprimer
phpinfo.php, pages d'exemple, comptes par défaut avant la mise en
production. |
| En-têtes de sécurité | Ajouter X-Content-Type-Options: nosniff,
X-Frame-Options: DENY, Content-Security-Policy (voir le
TP A07). |