Eksponowanie wersji apache oraz komponentów typu php
Testując nagłówki strony można zauważyć, że serwer webowy mówi więcej niż by się administrator lub twórca serwisu spodziewał.
Jak to wygląda w przykładzie?
Wersja wogóle nie zablokowana:
URL: http://porady.eu.org/
HTTP status Code: 200 OK
HTTP Headers:
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Date: Thu, 28 Aug 2008 10:20:20 GMT
Server: Apache/1.3.34 (Debian)
Co w tej sytuacji można zrobić? Szukamy, szukamy i znajdujemy, że warto w ustawieniach apache dodać składnie (/etc/apache/httpd.conf):
ServerSignature Off
ServerTokens Prod
Po zmianach bedzie to widoczne jako:
URL: http://porady.eu.org/
HTTP status Code: 200 OK
HTTP Headers:
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Date: Thu, 28 Aug 2008 10:14:16 GMT
Server: Apache
X-Powered-By: PHP/5.2.0-8+etch11
Widać, że zostało sporo ukryte natomiast pojawia sie X-Powered-By - co to ma znaczyć? Skąd się to wzięlo?
To jest wpis z komponentu php. Żeby to wyłączyć należy w php.ini dla apache'a użyć opcji:
expose_php = Off
Wydaje się, że ta wersja juz wszystko ukryła:
URL: http://porady.eu.org/
HTTP status Code: 200 OK
HTTP Headers:
Keep-Alive: timeout=3, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Date: Thu, 28 Aug 2008 10:21:10 GMT
Server: Apache
I to jest to co chcielismy osiągnąć - wyłączenie wyświetlania wersji. Teraz trzeba użyć bardziej zaawansowanych technik, żeby zweryfikować nasze wersje oprogramowania.