Scott Mitchell memberikan solusi dalam posting blog untuk menghapus header yang tidak perlu .
Seperti yang telah dikatakan di sini di jawaban lain, untuk Serverheader, ada solusi modul http , atau solusi web.config untuk IIS 10+ , atau Anda dapat menggunakan URLRewrite sebagai gantinya untuk mengosongkannya .
Solusi paling praktis untuk penyiapan terkini (IIS 10 +) menggunakan removeServerHeaderdi web.config:
<system.webServer>
...
<security>
<requestFiltering removeServerHeader="true" />
</security>
...
</system.webServer>
Untuk X-AspNet-Versiondan X-AspNetMvc-Version, ia memberikan cara yang lebih baik daripada menghapusnya di setiap respons: sama sekali tidak membuatnya sama sekali.
Gunakan enableVersionHeaderuntuk menonaktifkan X-AspNet-Version, di web.config
<system.web>
...
<httpRuntime enableVersionHeader="false" />
...
</system.web>
Gunakan MvcHandler.DisableMvcResponseHeaderdalam acara .Net Application_Start untuk menonaktifkanX-AspNetMvc-Version
MvcHandler.DisableMvcResponseHeader = true;
Dan terakhir, hapus dalam konfigurasi IIS X-Powered-Byheader kustom di web.config.
<system.webServer>
...
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
...
</system.webServer>
Hati-hati, jika Anda memiliki ARR (Application Request Routing), itu juga akan menambahkan miliknya sendiri X-Powered-By, yang tidak akan dihapus oleh pengaturan tajuk khusus. Yang ini harus dihapus melalui Manajer IIS, konfigurasi Editor pada akar IIS (bukan di situs): buka system.webServer/proxynode dan setel arrResponseHeaderke false. Setelah IISResetitu, itu diperhitungkan.
(Saya telah menemukan yang ini di sini , kecuali posting ini tentang cara lama IIS 6.0 untuk mengkonfigurasi berbagai hal.)
Jangan lupa bahwa solusi dengan kode aplikasi tidak berlaku secara default untuk header yang dihasilkan pada konten statis (Anda dapat mengaktifkan runAllManagedModulesForAllRequestsuntuk mengubahnya, tetapi itu menyebabkan semua permintaan untuk menjalankan pipeline .Net). Ini bukan masalah X-AspNetMvc-Versionkarena tidak ditambahkan pada konten statis (setidaknya jika permintaan statis tidak dijalankan di pipeline .Net).
Catatan tambahan: ketika tujuannya adalah untuk menyelubungi teknologi yang digunakan, Anda juga harus mengubah nama cookie .Net standar ( .ASPXAUTHjika formulir auth diaktifkan (gunakan nameatribut pada formstag di web.config), ASP.NET_SessionId(gunakan <sessionState cookieName="yourName" />di web.config di bawah system.webtag), __RequestVerificationToken(ubah itu dengan kode dengan AntiForgeryConfig.CookieName, tapi sayangnya tidak berlaku untuk input tersembunyi yang dihasilkan sistem ini di html)).