2012-06-19 39 views
13

soy capaz de cambiar el nombre del valor de org.apache.coyote.http11.Http11Protocol.SERVER a cualquier otra cosa, por lo que la respuesta HTTP-Header contiene algo como:quitar Tomcat cabecera del servidor

Servidor: Apache

en lugar del predeterminado

servidor: Apache-Coyote/1.1

el uso de un valor vacío para org.apache.coyote.http11.Http11Protocol.SERVER no elimina el servidor de cabecera.

¿Cómo puedo eliminar el Server-Header de mis resonses?

Respuesta

3

Respuesta breve: no puede eliminar el encabezado, pero debe modificarlo (consulte otras respuestas).

El encabezado del servidor se define en el RFC y es obligatorio. (No definidos como opcionales en la especificación)

Tomado de http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.38

14,38 servidor
El campo de respuesta-cabecera del servidor contiene información sobre el software utilizado por el servidor de origen para manejar la petición.
El campo puede contener varios tokens de productos (sección 3.8) y comentarios que identifican el servidor y cualquier subproducto significativo. Los tokens de producto se enumeran por orden de importancia para identificando la aplicación.

Si la respuesta se reenvía a través de un proxy, la aplicación de proxy NO DEBE modificar el encabezado de respuesta del servidor . En cambio, DEBERÍA incluir un campo Vía (como se describe en en la sección 14.45).

Note: Revealing the specific software version of the server might 
    allow the server machine to become more vulnerable to attacks 
    against software that is known to contain security holes. Server 
    implementors are encouraged to make this field a configurable 
    option. 
+6

Modificar o eliminar el encabezado del servidor (así como otros como X-Powered-By) es importante para la seguridad. Al proporcionar a los usuarios externos información sobre su infraestructura tecnológica subyacente, básicamente les está diciendo a los atacantes potenciales qué exploraciones deben aprovechar.A diferencia de otros contenidos, tomcat no te permite eliminar el encabezado, pero puedes modificarlo para que sea lo que quieras. '' dentro de server.xml. Ver también: [Tomcat docs] (https://tomcat.apache.org/tomcat-4.1-doc/config/coyote.html) –

+0

@Tomcat exactamente – momomo

5

Debería ser posible ya que Tomcat 5.5. Echa un vistazo a esta discusión: https://mail-archives.apache.org/mod_mbox/tomcat-users/200508.mbox/%[email protected]%3E y este enlace: https://tomcat.apache.org/tomcat-4.1-doc/config/coyote.html

En consecuencia, el siguiente debe establecer la cabecera del servidor a TEST. Vacío debería hacerlo vacío.

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8180" inProcessors="5" maxProcessors="75" enableLookups="true" acceptCount="10" debug="0" connectionTimeout="20000" useURIValidationHack="false" server="TEST"/> 

Configurar el encabezado del servidor a Apache debería ser lo suficientemente bueno para la seguridad en la mayoría de los casos. Solo a partir de eso no será posible inferir qué sistema operativo ni qué versión exacta con qué módulos y versiones de los módulos se están ejecutando.

+2

No veo cómo el enlace que proporcionó ayuda a eliminar el encabezado del servidor – RonK

+1

buena solución, funciona con tomcat 8 –

+0

-1 Esto no responde la pregunta. El OP ya sabe cómo cambiar el encabezado del Servidor; lo que quieren saber es si es posible * eliminar *. –

3

Puede modificar su servidor.xml tomcat y agregar una opción de "servidor" y configurarlo como lo desee. La opción de servidor debe establecerse para cualquier conector http o ssl que tenga en ejecución. Por ejemplo, a continuación se muestra una configuración de conector HTTP de ejemplo de un archivo de ejemplo server.xml

<Connector port="8080" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" enableLookups="false" xpoweredby="false" server="Web"/> 
Cuestiones relacionadas