Wyszukiwanie w witrynie

Jak ukryć numer wersji PHP w nagłówku HTTP


Konfiguracja PHP domyślnie pozwala nagłówkowi odpowiedzi HTTP serwera „X-Powered-By” na wyświetlenie wersji PHP zainstalowanej na serwerze.

Ze względów bezpieczeństwa serwera (choć nie jest to poważne zagrożenie) zaleca się wyłączenie lub ukrycie tych informacji przed atakującymi, którzy mogą obrać za cel Twój serwer, chcąc się dowiedzieć, czy używasz PHP, czy nie.

Zakładając, że konkretna wersja PHP zainstalowana na Twoim serwerze ma luki w zabezpieczeniach, a z drugiej strony atakujący dowiedzą się o tym, znacznie łatwiej będzie im wykorzystać luki i uzyskać dostęp do serwera za pomocą skryptów.

W moim poprzednim artykule pokazałem, jak ukryć numer wersji Apache, gdzie widziałeś, jak wyłączyć zainstalowaną wersję Apache. Ale jeśli używasz PHP na swoim serwerze WWW Apache, musisz także ukryć zainstalowaną wersję PHP i to właśnie pokażemy w tym artykule.

Dlatego w tym poście wyjaśnimy, jak ukryć lub wyłączyć wyświetlanie numeru wersji PHP w nagłówku odpowiedzi HTTP serwera.

To ustawienie można skonfigurować w załadowanym pliku konfiguracyjnym PHP. Jeśli nie znasz lokalizacji tego pliku konfiguracyjnego na swoim serwerze, uruchom poniższe polecenie, aby go znaleźć:

php -i | grep "Loaded Configuration File"
---------------- On CentOS/RHEL/Fedora ---------------- 
Loaded Configuration File => /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
Loaded Configuration File => /etc/php/7.0/cli/php.ini

Przed dokonaniem jakichkolwiek zmian w pliku konfiguracyjnym PHP sugeruję najpierw wykonanie kopii zapasowej pliku konfiguracyjnego PHP w następujący sposób:

---------------- On CentOS/RHEL/Fedora ---------------- 
sudo cp /etc/php.ini /etc/php.ini.orig

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
sudo cp /etc/php/7.0/cli/php.ini  /etc/php/7.0/cli/php.ini.orig  

Następnie otwórz plik za pomocą ulubionego edytora z uprawnieniami superużytkownika:

---------------- On CentOS/RHEL/Fedora ---------------- 
sudo vi /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
sudo vi /etc/php/7.0/cli/php.ini

Znajdź słowo kluczowe expose_php i ustaw jego wartość na Wyłączone:

expose_php = off

Zapisz plik i wyjdź. Następnie zrestartuj serwer WWW w następujący sposób:

---------------- On SystemD ---------------- 
sudo systemctl restart httpd
sudo systemctl restart apache2 

---------------- On SysVInit ---------------- 
sudo service httpd restart
sudo service apache2 restart

Na koniec sprawdź, czy nagłówek odpowiedzi HTTP serwera nadal pokazuje numer wersji PHP, używając poniższego polecenia.

lynx -head -mime_header http://localhost 
OR
lynx -head -mime_header http://server-address

gdzie flagi:

  1. -head – wysyła żądanie HEAD dla nagłówków MIME.
  2. -mime_header – drukuje nagłówek MIME pobranego dokumentu wraz z jego źródłem.

Uwaga: upewnij się, że w swoim systemie masz zainstalowaną przeglądarkę internetową uruchamianą z wiersza poleceń lynx.

Otóż to! W tym artykule wyjaśniliśmy, jak ukryć numer wersji PHP w nagłówku odpowiedzi HTTP serwera, aby zabezpieczyć serwer WWW przed możliwymi atakami. Możesz dodać opinię do tego wpisu lub zadać powiązane pytanie, korzystając z poniższego formularza komentarza.