Cada página en una aplicación MVC con la que estoy trabajando establece estos encabezados HTTP en las respuestas:
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 2.0
¿Cómo evito que se muestren?
asp.net-mvc
security
http-headers
Paul Fryer
fuente
fuente
Respuestas:
X-Powered-By
es un encabezado personalizado en IIS. Desde IIS 7, puede eliminarlo agregando lo siguiente a suweb.config
:Este encabezado también se puede modificar según sus necesidades; para obtener más información, consulte http://www.iis.net/ConfigReference/system.webServer/httpProtocol/customHeaders
Agregue esto a
web.config
para deshacerse delX-AspNet-Version
encabezado:Finalmente, para eliminar
X-AspNetMvc-Version
, editarGlobal.asax.cs
y agregar lo siguiente en elApplication_Start
evento:También puede modificar encabezados en tiempo de ejecución a través del
Application_PreSendRequestHeaders
evento enGlobal.asax.cs
. Esto es útil si sus valores de encabezado son dinámicos:fuente
X-Powered-By
encabezado. Vea otras respuestas sobre cómo lograr esto enweb.config
.También puede eliminarlos agregando código a su archivo global.asax:
fuente
<system.webServer> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> <redirectHeaders> <clear /> </redirectHeaders> </httpProtocol> </system.webServer>
Encontré esta configuración en mi
web.config
que era para unNew Web Site...
creado en Visual Studio (en lugar de aNew Project...
). Como la pregunta establece una aplicación ASP.NET MVC, no es tan relevante, pero sigue siendo una opción.Actualización : Además, Troy Hunt tiene un artículo titulado Shhh ... no permita que sus encabezados de respuesta hablen demasiado alto con pasos detallados sobre cómo eliminar estos encabezados, así como un enlace a su herramienta ASafaWeb para buscarlos y otras configuraciones de seguridad.
fuente
code
<security> <requestFiltering> <verbs> <add verb = "OPTIONS" allowed = "false" /> </verbs> </requestFiltering> </security>code
Para eliminar el encabezado del servidor , dentro del archivo Program.cs , agregue la siguiente opción:
Para dot net core 1, agregue la opción dentro de la llamada .UseKestrel (). Para dot net core 2, agregue la línea después de UseStartup ().
Para eliminar el encabezado X-Powered-By , si se implementa en IIS, edite su web.config y agregue la siguiente sección dentro de la etiqueta system.webServer:
Para eliminar el encabezado del servidor , dentro de su archivo global.asax agregue lo siguiente:
Agregue la siguiente clase de C # a su proyecto:
y luego dentro de su web.config agregue la siguiente sección <modules>:
Sin embargo, tuve un problema donde los subproyectos no podían encontrar este módulo. No es divertido.
Eliminar el encabezado X-AspNetMvc-Version
Para eliminar la etiqueta '' X-AspNetMvc-Version '', para cualquier versión de .NET, modifique su archivo '' web.config '' para incluir:
Gracias a Microsoft por hacer esto increíblemente difícil. O tal vez esa era su intención para poder rastrear las instalaciones de IIS y MVC en todo el mundo ...
fuente
RemoveServerHeaderModule
que no va a funcionar en el proyecto WebApi.Como se describe en Encubrimiento de su aplicación web ASP.NET MVC en IIS 7 , puede desactivar el encabezado X-AspNet-Version aplicando la siguiente sección de configuración a su web.config:
y elimine el encabezado X-AspNetMvc-Version alterando su Global.asax.cs de la siguiente manera:
Como se describe en Encabezados personalizados Puede eliminar el encabezado "X-Powered-By" aplicando la siguiente sección de configuración a su web.config:
No hay una manera fácil de eliminar el encabezado de respuesta "Servidor" a través de la configuración, pero puede implementar un
HttpModule
para eliminar encabezados HTTP específicos como se describe en Encubrimiento de su aplicación web ASP.NET MVC en IIS 7 y en cómo eliminar servidor. x-aspnet-version-x-aspnetmvc-version-and-x-powered-by-from-response-header-in-iis7 .fuente
Como se muestra en la eliminación de encabezados de servidor estándar en la página de sitios web de Windows Azure , puede eliminar encabezados con lo siguiente:
Esto elimina el encabezado del servidor y los encabezados X.
Esto funcionó localmente en mis pruebas en Visual Studio 2015.
fuente
En Asp.Net Core puede editar los archivos web.config de esta manera:
Puede eliminar el encabezado del servidor en las opciones de Kestrel:
fuente
Consulte este blog No use código para eliminar encabezados. Es inestable según Microsoft
Mi opinión sobre esto:
fuente
En aras de la integridad, hay otra forma de eliminar el
Server
encabezado, utilizando regedit.Vea este blog de MSDN .
Prefiero encontrar una solución adecuada usando Web.config, pero usarlo
<rewrite>
no es bueno porque requiere que se instale el módulo de reescritura, e incluso así realmente no eliminará el encabezado, solo vacíelo.fuente
Puede cambiar cualquier encabezado o cualquier cosa en
Application_EndRequest()
probar estofuente
El encabezado X-Powered-By es agregado por IIS a la respuesta HTTP, por lo que puede eliminarlo incluso a nivel del servidor a través del Administrador IIS:
Puede usar web.config directamente:
fuente