Bereits das eine oder andere Mal habe ich in Artikeln auf redirect301.de auf eine phpinfo-Datei hingewiesen. Da vielleicht nicht jeder sofort damit etwas anfangen kann oder eine auf den Webserver geladene info.php dort für alle Zeit ungeschützt liegen lässt, möchte kurz die PHP-Funktion
phpinfo() vorstellen und ein paar
Sicherheitshinweise mit auf den Weg geben.
Mit phpinfo() lassen sich eine ganze Reihe Informationen über die momentane PHP-Konfiguration anzeigen. Die Ausgabe erfolgt im Browser in einer übersichtlichen Tabelle. Bei Bedarf ließen sich auch nur Teile der Daten ausgeben, deren Konstanten mit einem logischem
or kombinierbar sind. Auf
php.net sind die einzelnen Parameter aufgelistet.
[php]
<?php phpinfo(INFO_LICENSE | INFO_VARIABLES); ?>
[/php]
Erstellen und Verwenden einer phpinfo-Datei
Erstellt eine kleine PHP-Datei mit dem Editor eurer Wahl, es reicht auch der Texteditor von Windows, und schreibt die folgende Zeile PHP-Code:
[php]
<?php phpinfo(); ?>
[/php]
Speichert die Datei unter einem beliebigen Namen (
z.B. isn6jqn) mit der Endung
.php ab und ladet sie auf euren Webserver. Nun könnt ihr diese im Browser aufrufen - in meinem Fall also unter
phpinfo.redirect301.de/isn6jqn.php - und bekommt reichlich Informationen zu:
- PHP-Version
- PHP-Konfiguration
- PHP-Kern
- Apache-Version und der verwendeten Module
- PHP-Umgebungsvariablen
- HTTP Header
- MySQL
- und vielen weiteren mehr

Gebrauchen kann man diese Informationen immer dann, wenn es irgendwo klemmt oder man sich im Vorfeld über die Bedingungen informieren möchte. So werden zum Beispiel im Abschnitt
apache2handler die geladenen Apache-Module angezeigt. Wird hier
mod_auth_digest nicht erwähnt, dann ließe sich auch keine verschlüsselte Server-Authentifizierung einrichten und man muss nicht lange nach dem Grund suchen, warum
htdigest nicht funktioniert. Genauso verhält es sich bei Problemen mit PHP-Scripts.
Sicherer Umgang mit den Server-Informationen
Oft stößt man auf
info.php oder
phpinfo.php usw., was ich nicht für die sicherste Namenswahl halte. Auch wenn diese PHP-Datei nur "mal kurz" auf dem Server bleiben soll, ist etwas mehr Kreativität gefragt. Die Ausgabe der Funktion verrät eine ganze Menge über die Serverkonfiguration und das geht niemanden etwas an. Wenn ich wirklich "nur mal kurz" nachschauen möchte, dann bekommt die Datei einen Namen wie den bereits erwähnten
isn6jqn.php (also irgendwas kryptisches eben, was sich nicht erraten lässt). Sicherer ist es natürlich, diese Datei vor Zugriffen von nicht autorisierten Personen gänzlich zu vermeiden. Per IP- oder
Passwort-Schutz ist man gewiss auf der sicheren Seite.
Ein potentieller Angreifer, ein böswilliger Hacker, freut sich mit Sicherheit über die vielen, bereitwillig preisgegebenen Informationen, die per phpinfo() ausgegeben werden. Er sieht sofort welche Module in welchen Versionen auf dem Server laufen, unter welchen Serverpfaden was wie erreichbar ist und hat dabei noch einen mächtigen Helfer. Google! Sucht bei Tante G einfach mal nach typischen Inhalten aus der phpinfo-Anzeige. Der
Lizenztext zum Beispiel am Ende der Ausgabe. Und schaut mal, wer da nicht alles seine kompletten Serverumgebungen der Netzgemeinde sowie den Internet-Bösewichten zur Verfügung stellt. Ein Hacker braucht also nur bei Google nach einem angreifbaren Modul inklusive Versionsnummer zu suchen und bekommt so eine schöne Übersicht neuer Angriffsziele.
Kommentararchiv 6
6 Leser haben zu diesem Artikel kommentiert und ihre Erfahrungen geteilt.