Cara Menyembunyikan Nomor Versi PHP di Header HTTP


Konfigurasi PHP, secara default memungkinkan header respons HTTP server 'X-Powered-By' untuk menampilkan versi PHP yang diinstal di server.

Untuk alasan keamanan server (meskipun bukan ancaman besar yang perlu dikhawatirkan), Anda disarankan untuk menonaktifkan atau menyembunyikan informasi ini dari penyerang yang mungkin menargetkan server Anda dengan ingin mengetahui apakah Anda menjalankan PHP atau tidak.

Dengan asumsi versi PHP tertentu yang diinstal di server Anda memiliki celah keamanan, dan di sisi lain, penyerang mengetahui hal ini, akan lebih mudah bagi mereka untuk mengeksploitasi kerentanan dan mendapatkan akses ke server melalui skrip.

Di artikel saya sebelumnya, saya telah menunjukkan cara Menyembunyikan nomor versi Apache, di mana Anda telah melihat cara mematikan versi yang diinstal Apache. Tetapi jika Anda menjalankan PHP di server web Apache Anda, Anda juga perlu menyembunyikan versi PHP yang terinstal, dan inilah yang akan kami tunjukkan di artikel ini.

Oleh karena itu, pada postingan kali ini kami akan menjelaskan cara menyembunyikan atau menonaktifkan tampilan nomor versi PHP di header respons HTTP server.

Pengaturan ini dapat dikonfigurasi dalam file konfigurasi PHP yang dimuat. Jika Anda tidak mengetahui lokasi file konfigurasi ini di server Anda, jalankan perintah di bawah ini untuk menemukannya:

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

Sebelum melakukan perubahan apa pun pada file konfigurasi PHP, saya sarankan Anda membuat cadangan terlebih dahulu file konfigurasi PHP Anda seperti:

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

Kemudian buka file menggunakan editor favorit Anda dengan hak pengguna super seperti:

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

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

Temukan kata kunci expose_php dan atur nilainya menjadi Off:

expose_php = off

Simpan file dan keluar. Setelah itu, restart server web sebagai berikut:

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

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

Terakhir, periksa apakah header respons HTTP server masih menampilkan nomor versi PHP Anda menggunakan perintah di bawah ini.

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

dimana benderanya:

  1. -head – mengirimkan permintaan HEAD untuk header mime.
  2. -mime_header – mencetak header MIME dari dokumen yang diambil bersama dengan sumbernya.

Catatan: Pastikan Anda telah menginstal lynx – browser web baris perintah di sistem Anda.

Itu dia! Pada artikel ini, kami menjelaskan cara menyembunyikan nomor versi PHP di header respons HTTP server untuk mengamankan server web dari kemungkinan serangan. Anda dapat menambahkan opini ke postingan ini atau mungkin mengajukan pertanyaan terkait melalui formulir komentar di bawah.