HTTP Başlığında PHP Sürüm Numarasını Gizleme


PHP yapılandırması, varsayılan olarak sunucu HTTP yanıt başlığı 'X-Powered-By'nin, sunucuda yüklü olan PHP sürümünü görüntülemesine izin verir.

Sunucu güvenliği nedeniyle (endişelenecek büyük bir tehdit olmasa da), PHP çalıştırıp çalıştırmadığınızı bilmek isteyerek sunucunuzu hedef alabilecek saldırganlardan bu bilgileri devre dışı bırakmanız veya gizlemeniz önerilir.

Sunucunuzda kurulu belirli bir PHP sürümünün güvenlik açıkları olduğunu ve diğer taraftan saldırganların bunu öğrendiğini varsayarsak, güvenlik açıklarından yararlanmaları ve sunucuya komut dosyaları aracılığıyla erişim sağlamaları çok daha kolay hale gelecektir.

Bir önceki yazımda apache sürüm numarası nasıl gizlenir onu göstermiştim, apache yüklü sürümünü nasıl kapatacağınızı görmüşsünüz. Ancak Apache web sunucunuzda PHP çalıştırıyorsanız, PHP'nin yüklü sürümünü de gizlemeniz gerekir ve bu makalede bunu göstereceğiz.

Bu nedenle, bu yazıda, sunucu HTTP yanıt başlığında PHP sürüm numarasının gösterilmesinin nasıl gizleneceğini veya kapatılacağını açıklayacağız.

Bu ayar, yüklenen PHP yapılandırma dosyasında yapılandırılabilir. Bu yapılandırma dosyasının sunucunuzdaki konumunu bilmiyorsanız, bulmak için aşağıdaki komutu çalıştırın:

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

PHP yapılandırma dosyasında herhangi bir değişiklik yapmadan önce, PHP yapılandırma dosyanızın yedeğini şu şekilde almanızı öneririm:

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

Ardından dosyayı, aşağıdaki gibi süper kullanıcı ayrıcalıklarına sahip favori düzenleyicinizi kullanarak açın:

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

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

expose_php anahtar kelimesini bulun ve değerini Kapalı olarak ayarlayın:

expose_php = off

Dosyayı kaydet ve çık. Daha sonra web sunucusunu aşağıdaki şekilde yeniden başlatın:

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

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

Son olarak, aşağıdaki komutu kullanarak sunucu HTTP yanıt başlığının hala PHP sürüm numaranızı gösterip göstermediğini kontrol edin.

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

bayraklar nerede:

  1. -head – mime başlıkları için bir HEAD isteği gönderir.
  2. -mime_header – getirilen bir belgenin MIME başlığını kaynağıyla birlikte yazdırır.

Not: Sisteminizde lynx – komut satırı web tarayıcısının kurulu olduğundan emin olun.

Bu kadar! Bu yazımızda, bir web sunucusunu olası saldırılardan korumak için sunucu HTTP yanıt başlığında PHP sürüm numarasının nasıl gizleneceğini anlattık. Bu yazıya bir görüş ekleyebilir veya aşağıdaki yorum formunu kullanarak ilgili herhangi bir soruyu sorabilirsiniz.