Saya menjalankan server di nodejs dengan express. Sepertinya saya tidak bisa menghilangkan tajuk:
X-Powered-By:Express
Saya bertanya-tanya apakah ada cara untuk menyingkirkan tajuk ini atau apakah saya harus hidup dengannya?
javascript
node.js
express
http-headers
webserver
tyronegcarter
sumber
sumber
Jawaban:
In Express> = 3.0.0rc5:
Berikut adalah middleware sederhana yang menghapus header di versi Express sebelumnya:
sumber
app.use(app.router);
berfungsi.4.15.2
. Solusi @harrisunderwork menggunakanapp.set()
melakukan trik.Hanya untuk membonceng jawaban rjack, Anda juga bisa (secara opsional) hanya mengubah (mengatur) header X-powered-by menjadi sesuatu yang jauh lebih keren / ubahsuaian seperti ini:
sumber
Pada Express v3.0.0rc5, dukungan untuk menonaktifkan
X-Powered-By
header adalah bawaan :sumber
Dari sumbernya ( http://expressjs.com/en/api.html#app.set ). Di Express 4.X cukup atur aplikasi menggunakan garis di bawah ini;
sumber
Berikut ini adalah middleware berguna yang dapat Anda singgahi untuk menukar X-Powered-By:
Mengatur X-Powered oleh dalam hal ini akan menimpa default 'Express', sehingga Anda tidak perlu menonaktifkan DAN mengatur nilai baru.
sumber
Mungkin ini jelas bagi pengguna Express yang lebih berpengalaman, tetapi hanya ini yang berhasil bagi saya:
sumber
Terkadang jawaban di atas tidak berhasil. Ini kasus saya. Saya memiliki Express 4.17.1 dan tidak ada satu jawaban pun yang tidak berfungsi. Jadi saya menemukan solusi saya sendiri:
sumber
Untuk Menyembunyikan, X-Powered By Anda dapat menggunakan helm Node .js Library .
Tautan Untuk itu adalah helm
sumber
Tidak ada pekerja solusi standar untuk saya juga. Setelah banyak pencarian saya menemukan bahwa kami menggunakan file rute tempat instance express baru dimulai, yang kemudian ditambahkan ke yang pertama dengan menggunakan app.use. Hanya untuk rute dalam instance ekspres baru ini header X-Powered-By hadir.
Pandangan sederhana tentang masalah:
Solusi hanya untuk membuat ekspres baru. Rute bukannya seluruh contoh.
sumber
Membaca kode https://github.com/visionmedia/express/blob/master/lib/http.js#L72 membuat saya berpikir bahwa Anda harus hidup dengan itu karena sepertinya tidak kondisional.
Jika Anda memiliki frontend nginx / apache Anda masih dapat menghapus header dengan itu (dengan mod_headers untuk apache dan header-lebih untuk nginx)
sumber
removeHeader hanya akan berfungsi di rute middleware, contoh coffeescript
sumber
Semua ini tidak berfungsi untuk saya, kecuali ini (Anda perlu menambahkan parameter lain):
Saya menggunakan Express ^ 4.17
sumber