Wie ich bereits angekündigt hatte, möchte ich nun zeigen wie man das “X-Powered-By” aus dem HTTP-Header entfernen kann. In der Standardinstallation von PHP ist das “X-Powered-By” aktiviert und zeigt jedem, der es möchte, die verwendete Version an. Das Entfernen ist nicht zwangsläufig nötig, aber wenn man auf “perfekte” Sachen steht und/oder einen Aluhut trägt, sollte man die Versionsnummer doch mal entfernen. Manchmal ist es schon vorgekommen, dass Hacker so auf alte Software aufmerksam wurden und dann den Server leicht kompromittieren konnten. Wie immer gehört dazu eine ganze Menge “Zufall”. :)
Die Einstellung lässt sich in der jeweiligen php.ini editieren. Im Normalfall findet sich diese im Verzeichnis “/etc/php5/cgi/”. Wenn sie dort nicht ist, kann sie mittels “find . | grep php.ini” gesucht werden. Soll noch andere Wege geben zu suchen, aber ich habe es mir halt so angewöhnt.
Also fangen wir an. Der Header sieht aktuell so aus:
HTTP/1.1 200 OK
Server: nginx/1.0.11
Date: Sun, 29 Jan 2012 17:57:36 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: PHP/5.3.9-1~dotdeb.3
X-Pingback: https://maltris.org/xmlrpc.php
Wir öffnen nun mit “nano /etc/php5/cgi/php.ini” unsere PHP-Konfiguration und suchen mittels “Strg+W” nach dem Text “expose_php”, denn damit wird die Ausgabe ein- bzw. ausgeschaltet.
Standardmäßig steht der Wert auf “On”. Alles was nun zu tun ist, ist das Ändern in “Off”.
Mittels “Strg+X” können wir, nach einer Bestätigung zum Speichern, den Editor schließen.
Nun muss der PHP-Prozess neu geladen bzw. gestartet werden. Wie das Ganze unter Apache aussieht kann ich leider gar nicht mehr genau sagen, aber man sollte den Häuptling mittels “/etc/init.d/apache2 restart” zum Neustart bewegen. Berichtigt mich wenn ihr es besser wisst. Soweit ich weiß spawnt der Apache-Webserver PHP-Prozesse von sich aus.
Bei Nginx läuft das leicht anders ab, da die PHP-Prozesse manuell eingerichtet werden. In meinem Fall werden PHP-Prozesse mit “spawn-fcgi” gestartet. Also muss ich den laufenden Prozess killen und neu starten. Ich gehe davon aus, dass das jeder der Nginx verwendet weiß. Nach der Änderung sieht unser Header folgendermaßen aus:
HTTP/1.1 200 OK
Server: nginx/1.0.11
Date: Sun, 29 Jan 2012 18:16:25 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Pingback: https://maltris.org/xmlrpc.php
Hoffe, dass ich bisschen helfen konnte. :) Hinterlasst einen Kommentar wenn etwas nicht passt!