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:
-head
– mime başlıkları için bir HEAD isteği gönderir.-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.