Saya perlu menghapus header yang berlebihan (terutama untuk lulus pengujian penetrasi). Saya telah menghabiskan waktu mencari solusi yang melibatkan menjalankan UrlScan, tetapi ini rumit karena UrlScan perlu diinstal setiap kali instans Azure dimulai .
Harus ada solusi yang baik untuk Azure yang tidak melibatkan penerapan penginstal dari startup.cmd.
Saya memahami bahwa tajuk tanggapan ditambahkan di tempat yang berbeda :
- Server : ditambahkan oleh IIS.
- X-AspNet-Version : ditambahkan oleh System.Web.dll pada saat Flush di kelas HttpResponse
- X-AspNetMvc-Version : Ditambahkan oleh MvcHandler di System.Web.dll.
- X-Powered-By : ditambahkan oleh IIS
Apakah ada cara untuk mengkonfigurasi (melalui web.config dll.?) IIS7 untuk menghapus / menyembunyikan / menonaktifkan header tanggapan HTTP untuk menghindari peringatan "Header yang Berlebihan" di asafaweb.com , tanpa membuat modul IIS atau menerapkan penginstal yang perlu dijalankan setiap kali instans Azure dimulai?
sumber
MSDN menerbitkan artikel ini tentang cara menyembunyikan tajuk di Situs Web Azure. Anda sekarang dapat menyembunyikan server dari web.config dengan menambahkan entri ke system.webServer
<security> <requestFiltering removeServerHeader ="true" /> </security>
VS akan mengerutkan kening di atas sebagai tidak valid. Tautan di atas memiliki kode sebagai foto, sulit ditemukan. Versi MVC masih tersembunyi di aplikasi start seperti di atas, sama untuk versi x-powered-by dan .Net.
sumber
Ada juga paket di NuGet yang membantu Anda mencapai ini melalui beberapa baris konfigurasi dan tidak ada perubahan pada kode: NWebsec. Dokumen tentang menghapus header versi dapat ditemukan di sini: https://github.com/NWebsec/NWebsec/wiki/Suppressing-version-headers
Ini didemonstrasikan di sini: http://www.nwebsec.com/HttpHeaders/VersionHeaders (di Azure)
Penafian: Saya adalah pengembang proyek.
sumber
Jawaban Nick Evans sempurna, tapi ...
Jika Anda menghapus header ini untuk tujuan keamanan , jangan lupa untuk mengubah
ASP.NET Session coockie name
! Karena lebih mudah menebak bahasa yang digunakan atau versi server jika Anda melihat ini:Untuk mengubah nama cookie: (jadilah kreatif)
<system.web> <sessionState cookieName="PHPSESSID" /> </system.web>
sumber
Menggulung jawaban sebelumnya dari @ giveme5minutes dan @AKhooli karena terkait dengan Situs Web Azure ditambah beberapa item lain yang ingin dilihat pemindai, ini adalah perubahan yang saya buat untuk membuat ASafaWeb senang dengan situs Azure.
Itu masih mengeluh tentang cookie tajuk afinitas Azure yang tidak hanya https tetapi afinitas adalah jenis cookie yang ingin Anda putar ulang, bukan?
<system.web> <compilation debug="false"> <httpRuntime enableVersionHeader="false" /> <httpCookies httpOnlyCookies="true" requireSSL="true" /> <customErrors mode="RemoteOnly" defaultRedirect="~/Error.aspx" /> </system.web> <system.webServer> <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="DENY" /> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> <security> <!--removes Azure headers--> <requestFiltering removeServerHeader="true" /> </security> </system.webServer>
sumber