Kako sakriti PHP broj verzije u HTTP zaglavlju


PHP konfiguracija prema zadanim postavkama dopušta zaglavlju HTTP odgovora poslužitelja 'X-Powered-By' da prikaže PHP verziju instaliranu na poslužitelju.

Iz sigurnosnih razloga poslužitelja (iako to nije velika prijetnja o kojoj treba brinuti), preporučuje se da onemogućite ili sakrijete ove informacije od napadača koji bi mogli ciljati vaš poslužitelj želeći znati pokrećete li PHP ili ne.

Pod pretpostavkom da određena verzija PHP-a instalirana na vašem poslužitelju ima sigurnosne rupe, a s druge strane, napadači to saznaju, bit će im puno lakše iskoristiti ranjivosti i dobiti pristup poslužitelju putem skripti.

U svom prethodnom članku pokazao sam kako sakriti broj verzije apachea, gdje ste vidjeli kako isključiti instaliranu verziju apachea. Ali ako koristite PHP na svom web poslužitelju Apache, trebate sakriti i instaliranu verziju PHP-a, a to je ono što ćemo pokazati u ovom članku.

Stoga ćemo u ovom postu objasniti kako sakriti ili isključiti prikazivanje broja verzije PHP-a u zaglavlju HTTP odgovora poslužitelja.

Ova se postavka može konfigurirati u učitanoj PHP konfiguracijskoj datoteci. U slučaju da ne znate lokaciju ove konfiguracijske datoteke na vašem poslužitelju, pokrenite donju naredbu da je pronađete:

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

Prije bilo kakvih promjena u PHP konfiguracijskoj datoteci, predlažem da prvo napravite sigurnosnu kopiju svoje PHP konfiguracijske datoteke ovako:

---------------- 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  

Zatim otvorite datoteku pomoću svog omiljenog uređivača s privilegijama super korisnika na sljedeći način:

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

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

Pronađite ključnu riječ expose_php i postavite njezinu vrijednost na Isključeno:

expose_php = off

Spremite datoteku i izađite. Nakon toga ponovno pokrenite web poslužitelj na sljedeći način:

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

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

Na kraju, ali ne i najmanje važno, provjerite prikazuje li zaglavlje HTTP odgovora poslužitelja još uvijek broj vaše PHP verzije pomoću naredbe u nastavku.

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

gdje su zastave:

  1. -head – šalje zahtjev HEAD za mime zaglavlja.
  2. -mime_header – ispisuje MIME zaglavlje dohvaćenog dokumenta zajedno s njegovim izvorom.

Napomena: Provjerite imate li lynx – web preglednik s naredbenim redkom instaliran na vašem sustavu.

To je to! U ovom smo članku objasnili kako sakriti broj verzije PHP-a u zaglavlju HTTP odgovora poslužitelja kako bismo osigurali web poslužitelj od mogućih napada. Možete dodati mišljenje ovom postu ili možda postaviti bilo koje povezano pitanje putem donjeg obrasca za komentare.