2010-11-02 16 views
28

En IIS 7.0integrated mode después de eliminar todos los encabezados con Response.ClearHeaders() IIS agregaría algunos otros encabezados como Server y X-Powered-By que revela buena información a los piratas informáticos. ¿Cómo puedo detener este comportamiento (considero que aún necesito agregar mis encabezados personalizados)?Cómo eliminar encabezados personalizados de IIS como X-Powered-By: ASP.NET de la respuesta?

+0

posible duplicado de [Extracción/Ocultación/desactivación de cabeceras excesivas de respuesta HTTP en Azure/IIS7 sin UrlScan] (http://stackoverflow.com/questions/12803972/removing-hiding-disabling-excessive-http -response-headers-in-azure-iis7-without) – CrazyPyro

+0

Sé que se le preguntó primero, pero esa otra pregunta ahora es más completa y está más actualizada. – CrazyPyro

Respuesta

11

El X-Powered-By se configura en IIS. En Windows 7 es específicamente:

  1. Administrador de IIS
  2. nombre de equipo> Sitios> Sitio Web predeterminado
  3. HTTP Respons encabezados
  4. Retire X-Powered-By

no estoy seguro de lo que genera el Server encabezado sin embargo.

+1

Gracias. Al menos 50% de progreso. Prefiero un enfoque general desde asp.net si es posible. – Xaqron

+0

@Xaqron, probablemente puedas acceder a la configuración de forma programática, pero no sé cómo de improviso. Lo siento. –

1

URLScan se puede utilizar para quitar la cabecera del servidor, o configurar otro servidor de cabecera, http://learn.iis.net/page.aspx/938/urlscan-3-reference/

Pero en realidad nunca se evita que un hacker para saber lo que se utiliza en los hechos. Obviamente hay otras maneras de detectar la información de su servidor.

+0

Gracias. Debería haber algo integrado como secciones de configuración o en el peor de los casos, la manipulación del registro en lugar de instalar un componente cuya finalidad principal no es eliminar los encabezados de SERVER. – Xaqron

+0

Ya he dicho que no todo el mundo piensa que mostrar el encabezado del servidor es malo. Entonces, ¿por qué debería construirse si poca gente lo usa? –

54

Puede agregar esto a su Web.Config:

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
      <remove name="X-Powered-By" /> 
     </customHeaders> 
    </httpProtocol> 
</system.webServer> 

Actualización: si está utilizando el marco MVC También recomendaría la eliminación de los X-AspNetMvc-Version y X-AspNet-Version cabeceras también. Esto se logra configurando MvcHandler.DisableMvcResponseHeader = true en su archivo Global.asax y <system.web><httpRuntime enableVersionHeader="false" /></system.web> en su Web.config respectivamente.

+3

En IIS 10.0 (y Azure Web Apps) también puede deshacerse del encabezado 'Server' con' '. –

5

Para el modo integrado IIS7 +, eth0 lo tiene: <customHeaders> etiqueta en web.config. Gracias por eso. En cuanto a la cabecera "Server", si se utiliza MVC, sólo tiene que añadir:

protected void Application_PreSendRequestHeaders() 
    { 
     Response.Headers.Remove("Server"); 
    } 

a su clase MvcApplication en Global.asax. De lo contrario, simplemente puede agregar un módulo Http personalizado, manejar el evento PreSendRequestHeaders y hacer lo mismo.

+2

PreSendRequestHeaders no forma parte de la canalización administrada y puede producir resultados extraños, como solicitudes asincrónicas congeladas. http://www.asp.net/aspnet/overview/web-development-best-practices/what-not-to-do-in-aspnet-and-what-to-do-instead#presend. –

Cuestiones relacionadas