PHP-Sicherheit erklärt · defensiv
phpinfo()-Offenlegung: warum sie zählt und wie Sie sie beheben
phpinfo() gibt die komplette PHP-Konfiguration aus. Beim Einrichten praktisch, online vergessen ein Geschenk für Angreifer.
Zuletzt aktualisiert
Worum es geht
Laut PHP-Handbuch gibt phpinfo() eine große Menge an Informationen über den aktuellen Zustand von PHP aus, darunter Kompilieroptionen, Erweiterungen, PHP-Version, Serverinformationen, Umgebung und HTTP-Header. Auf einer Live-Site können das Datenbank-Hostnamen, API-Schlüssel in Umgebungsvariablen und interne Pfade sein. MITRE führt das als CWE-200.
So finden Sie es
- Durchsuchen Sie den Web-Root nach Dateien mit
phpinfo(und nach Namen wieinfo.php,phpinfo.phpundtest.php. - Rufen Sie diese Namen auf eigenen Sites ab und prüfen Sie auf eine 200-Antwort. Scannen Sie keine fremden Sites.
- Prüfen Sie, ob der Header
X-Powered-Bydie PHP-Version zeigt; das steuertexpose_php.
So beheben Sie es
- Löschen Sie phpinfo-Dateien in der Produktion. Brauchen Sie die Infos, nutzen Sie
php -iauf dem Server oder eine geschützte temporäre Seite, die Sie danach entfernen. - Fügen Sie
phpinfozudisable_functionsin der php.ini hinzu, wenn keine Anwendung es braucht. - Setzen Sie
expose_php = Off, um die Version aus den Antwort-Headern zu entfernen. - Rotieren Sie jedes Geheimnis, das auf einer offenen phpinfo-Seite stand, denn Sie wissen nicht, wer es gesehen hat.
Lesende Prüfungen und sichere Muster
# Find leftover phpinfo() files (read-only)
grep -rln "phpinfo\s*(" --include=*.php /var/www 2>/dev/null | grep -v /vendor/
# Check your own site for common file names (only on hosts you own)
for f in phpinfo.php info.php test.php i.php; do
curl -s -o /dev/null -w "%{http_code} $f\n" "https://your-site.example/$f"
done
; php.ini: stop advertising the version and block the function
expose_php = Off
disable_functions = phpinfoIst die sichtbare PHP-Version wirklich ein Problem?
Allein keine Schwachstelle, aber sie verrät, ob ein Server noch vor 8.2.35, 8.3.36, 8.4.27 oder 8.5.12 steht. Sie zu entfernen kostet nichts.
Mein Hosting-Panel zeigt phpinfo. Ist das offen?
Nicht, wenn es hinter dem Panel-Login liegt. Das Risiko ist eine phpinfo-Seite ohne Anmeldung.
Weitere PHP-Schwachstellenklassen
- PHP Object Injection: was es ist und wie Sie es behebenPHP Object Injection entsteht, wenn benutzerkontrollierte Eingaben unserialize() erreichen, das Objekte erzeugen kann, deren magische Methoden vom Angreifer gewählte Logik ausführen.
- PHP File Inclusion (LFI/RFI): was es ist und wie Sie es behebenFile Inclusion entsteht, wenn Benutzereingaben den Pfad für include oder require steuern; Angreifer lesen dann lokale Dateien (LFI) oder führen bei aktivem allow_url_include entfernten Code aus (RFI).
- SSRF in PHP: was es ist und wie Sie es behebenServer-Side Request Forgery (SSRF) entsteht, wenn eine PHP-App eine vom Benutzer gesteuerte URL abruft, sodass Angreifer über Ihren Server interne Dienste oder Cloud-Metadaten-Endpunkte erreichen.
- XSS in PHP: was es ist und wie Sie es verhindernCross-Site Scripting (XSS) entsteht, wenn eine PHP-Seite benutzerkontrollierte Daten ohne Escaping in HTML ausgibt, sodass das Skript eines Angreifers im Browser anderer Besucher läuft.
Quellen
Externe Links verlassen diese Website. Wir hosten keinen Exploit-Code.
- phpinfo() — PHP Manual
- Core php.ini directives (open_basedir, expose_php) — PHP Manual
- CWE-200: Exposure of Sensitive Information to an Unauthorized Actor — MITRE CWE