Salah satu tajuk HTTP yang dikirimkan kembali oleh Apachehttpd
dengan data respons adalah "Server". Sebagai contoh, mesin server web saya relatif Arch Linux terbaru. Ini mengirim kembali header mirip dengan yang berikut:
HTTP/1.1 404 Not Found
Date: Thu, 10 Apr 2014 17:19:27 GMT
Server: Apache/2.4.9 (Unix)
Content-Length: 1149
Connection: close
Content-Type: text/html
Saya sudah ServerSignature off
masuk /etc/httpd/conf/httpd.conf
, tetapi tajuk "Server:" masih muncul. Saya telah bereksperimen dengan mod_headers . Saya sudah mengaktifkannya, dan saya sudah mencoba beberapa hal:
<IfModule headers_module>
Header set ProcessingTime "%D"
Header set Server BigJohn
</IfModule>
Setelah berhenti dan mulai httpd
dengan konfigurasi di atas, header HTTP menyertakan sesuatu seperti ProcessingTime: 1523
, tetapi baris header "Server:" tetap tidak berubah. Jadi saya tahu bahwa "mod_headers" diinstal dan diaktifkan, dan berfungsi, tetapi tidak seperti yang saya inginkan.
Saya melihat bahwa sesuatu yang disebut "mod_security" mengklaim untuk melakukan ini, tetapi saya tidak ingin semua bagasi yang dibawa mod_security bersamanya.
MEMPERBARUI:
Setelah Anda mod_security
menginstal, Anda hanya perlu beberapa arahan:
<IfModule security2_module>
SecRuleEngine on
ServerTokens Full
SecServerSignature "Microsoft-IIS/6.0"
</IfModule>
Itu untuk mod_security
2.7.7
sumber
Jawaban:
Header ID server / token dikendalikan oleh direktif " ServerTokens " (disediakan oleh
mod_core
). Selain memodifikasi kode sumber Apache HTTPD, atau menggunakanmod_security
modul, tidak ada cara lain untuk sepenuhnya menekan header ID server.Dengan
mod_security
pendekatan ini, Anda dapat menonaktifkan semua arahan / fungsi modul dalammodsecurity.conf
file, dan hanya memanfaatkan arahan ID header server tanpa "bagasi" tambahan.sumber
mod_security sangat bagus, tetapi Anda tidak benar-benar membutuhkannya untuk mencapai tujuan Anda.
setelah semua mod disertakan,
httpd.conf
Anda dapat dengan mudah menghapus header pilihan Anda.http://httpd.apache.org/docs/2.4/mod/core.html#serversignature
sumber
sudo a2enmod headers
Header unset Server
tidak berfungsi di Apache 2.2 dan 2.4. Header respons masih berisiServer: Apache
Hanya memperbarui ini untuk orang yang masih mencari. Saya mengalami masalah saat mengubah baris Server di header HTTP. Nasihat ini harus bekerja untuk distro cabang Debian dengan systemd dan Apache 2.4.7. Secara khusus, saya menggunakan Ubuntu Server LTS 14.04.03. Beberapa saran yang saya temukan adalah melakukan
Ini membawa saya ke /etc/apache2/conf-available/security.conf di mana ServerTokens dan ServerSignature ditentukan. Oleh karena itu, setiap perubahan yang saya lakukan pada /etc/apache2/apache2.conf sedang ditimpa oleh arahan yang telah ditentukan dalam security.conf.
Saya hanya mengubah arahan dalam security.conf dan Apache mulai bekerja seperti yang saya inginkan.
Pada topik Header unset Server, saya menemukan laporan bug di mana Apache devs mengatakan itu adalah masalah tidak akan diperbaiki. Tampaknya bagi mereka itu adalah masalah filosofis, meskipun spesifikasi untuk HTTP / 1.1, RFC 2616 sebagian ditulis oleh Tim Berners-Lee, mengatakan bahwa tag Server adalah opsional.
Saya benar-benar ingin mengatur tag Server ke "Tidak Dikenal" untuk membuat pemindaian Qualys kami bahagia. Jadi, saya menginstal mod_security, sekarang disebut libapache2-modsecurity, mengikuti tutorial DigitalOcean ini . Semoga beruntung, saya harap saya membantu untuk Anda semua pembaca masa depan.
sumber
Saya telah menguji sesuatu pada Oracle HTTP Server 11.1.1.9 (yang dibangun di atas Apache 2.2.22) yang bekerja untuk saya, sampai batas tertentu ..
Mengatur "ServerTokens" ke "tidak ada" tampaknya menghapus nilai header "Server", meskipun header itu sendiri terus dikirim dalam respons, tetapi sekarang memiliki nilai nol.
Header respons akan terlihat seperti ini:
sumber
none
di Apache terbaru:ServerTokens takes 1 argument: 'Prod(uctOnly)', 'Major', 'Minor', 'Min(imal)', 'OS', or 'Full'