Muszę usunąć nadmierne nagłówki (przede wszystkim, aby przejść testy penetracyjne). Spędziłem czas na szukaniu rozwiązań obejmujących uruchamianie UrlScan, ale są one uciążliwe, ponieważ UrlScan musi być instalowany za każdym razem, gdy uruchamiana jest instancja platformy Azure .
Musi istnieć dobre rozwiązanie dla platformy Azure, które nie obejmuje wdrażania instalatorów z pliku startup.cmd.
Rozumiem, że nagłówki odpowiedzi są dodawane w różnych miejscach :
- Serwer : dodany przez IIS.
- Wersja X-AspNet : dodana przez System.Web.dll w czasie Flush w klasie HttpResponse
- Wersja X-AspNetMvc : Dodana przez MvcHandler w System.Web.dll.
- X-Powered-By : dodany przez IIS
Czy istnieje sposób skonfigurowania (za pośrednictwem web.config itp.) Usług IIS7 w celu usunięcia / ukrycia / wyłączenia nagłówków odpowiedzi HTTP w celu uniknięcia ostrzeżenia „Nadmiar nagłówków” w witrynie asafaweb.com bez tworzenia modułu IIS lub wdrażania instalatorów, które muszą być uruchamiane przy każdym uruchomieniu wystąpienia platformy Azure?
źródło
Witryna MSDN opublikowała ten artykuł na temat ukrywania nagłówków w witrynach sieci Web platformy Azure. Możesz teraz ukryć serwer przed web.config, dodając wpis do system.webServer
<security> <requestFiltering removeServerHeader ="true" /> </security>
VS zmarszczy brwi, widząc powyższe jako nieważne. Powyższy link zawiera kod w postaci fotek, trudny do znalezienia. Wersja MVC jest nadal ukryta w starcie aplikacji, jak powyżej, tak samo dla wersji x-powered-by i .Net.
źródło
W NuGet dostępny jest również pakiet, który pomaga to osiągnąć za pomocą kilku wierszy konfiguracji i bez zmian w kodzie: NWebsec. Dokumentację dotyczącą usuwania nagłówków wersji można znaleźć tutaj: https://github.com/NWebsec/NWebsec/wiki/Suppressing-version-headers
Jest to pokazane tutaj: http://www.nwebsec.com/HttpHeaders/VersionHeaders (na platformie Azure)
Zastrzeżenie: jestem programistą w projekcie.
źródło
Odpowiedź Nicka Evansa jest doskonała, ale ...
Jeśli usuniesz te nagłówki ze względów bezpieczeństwa , nie zapomnij zmienić
ASP.NET Session coockie name
! Ponieważ łatwiej jest odgadnąć używany język lub wersję serwera, gdy zobaczysz to:Aby zmienić nazwę pliku cookie: (bądź kreatywny)
<system.web> <sessionState cookieName="PHPSESSID" /> </system.web>
źródło
Podsumowując poprzednie odpowiedzi z @ giveme5minutes i @AKhooli, ponieważ odnoszą się one do Azure Websites oraz kilku innych elementów, które skaner chce zobaczyć, są to zmiany, które wprowadziłem, aby ASafaWeb był zadowolony z witryny Azure.
Nadal narzeka, że plik cookie nagłówka koligacji platformy Azure nie jest tylko https, ale koligacja to typ pliku cookie, który i tak chcesz odtworzyć, prawda?
<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>
źródło