Cómo configurar el encabezado de seguridad-seguridad estricto para /favicon.ico en la bota de primavera -- spring-boot campo con favicon camp Relacionados El problema

How To Set Strict-Transport-Security Header for /favicon.ico in Spring Boot


0
vote

problema

Español

Mi aplicación de arranque de primavera (v1.4.2, con inicio de inicio) actualmente está configurando actualmente el encabezado de seguridad de transporte estricto para cada recurso que sirve, incluidos los recursos API de My Spring-Web RestControllers, y recursos estáticos en /src/main/resources/static . El solo La excepción que he encontrado es /favicon.ico . El encabezado que falta en este archivo está activando los hallazgos en nuestros escaneos de seguridad y me gustaría aclararlos.

Aquí está lo que he intentado hasta ahora:

  1. Discapacitados de la primavera Manipulación de favicon personalizados con spring.mvc.favicon.enabled=false
  2. agregado Manejo de encabezado explícito para todos los recursos en la configuración de HTTSECIurity:

      abstract class Employee {     public Superior: Employee;      /** THIS IS NOT WORKING */     public getSuperiorOfType<T extends Employee>( type: typeof T ): T     {         if (this instanceof T) return this;         else if (this.Superior !== undefined) return this.getSuperiorOfType(type);     } }  class Manager extends Employee {} class TeamLead extends Employee {} class Developer extends Employee {}  let tom = new Manager(); let suzanne = new TeamLead(); let ben = new Developer();  ben.Superior = suzanne; suzanne.Superior = tom;  let x = ben.getSuperiorOfType( Manager ); // x = tom 0  

Parece que no importa lo que haga, este recurso produce un conjunto diferente de encabezados de respuesta HTTP que en cualquier otro recurso servido por la bota de primavera. Por ejemplo, los encabezados de control de caché que se aplican a todas mis otras respuestas están ausentes a partir de abstract class Employee { public Superior: Employee; /** THIS IS NOT WORKING */ public getSuperiorOfType<T extends Employee>( type: typeof T ): T { if (this instanceof T) return this; else if (this.Superior !== undefined) return this.getSuperiorOfType(type); } } class Manager extends Employee {} class TeamLead extends Employee {} class Developer extends Employee {} let tom = new Manager(); let suzanne = new TeamLead(); let ben = new Developer(); ben.Superior = suzanne; suzanne.Superior = tom; let x = ben.getSuperiorOfType( Manager ); // x = tom 1111 .

Curiosamente, he encontrado que el encabezado que puedo afectar para este archivo es el encabezado de tipo de contenido (devoluciones de comportamiento predeterminado abstract class Employee { public Superior: Employee; /** THIS IS NOT WORKING */ public getSuperiorOfType<T extends Employee>( type: typeof T ): T { if (this instanceof T) return this; else if (this.Superior !== undefined) return this.getSuperiorOfType(type); } } class Manager extends Employee {} class TeamLead extends Employee {} class Developer extends Employee {} let tom = new Manager(); let suzanne = new TeamLead(); let ben = new Developer(); ben.Superior = suzanne; suzanne.Superior = tom; let x = ben.getSuperiorOfType( Manager ); // x = tom 2 ) agregando una mimemapping a un EMBEDDEEDSERVLETCONTAINERERCUSTOMIERSE:

  abstract class Employee {     public Superior: Employee;      /** THIS IS NOT WORKING */     public getSuperiorOfType<T extends Employee>( type: typeof T ): T     {         if (this instanceof T) return this;         else if (this.Superior !== undefined) return this.getSuperiorOfType(type);     } }  class Manager extends Employee {} class TeamLead extends Employee {} class Developer extends Employee {}  let tom = new Manager(); let suzanne = new TeamLead(); let ben = new Developer();  ben.Superior = suzanne; suzanne.Superior = tom;  let x = ben.getSuperiorOfType( Manager ); // x = tom 3  
Original en ingles

My Spring Boot application (v1.4.2, with undertow starter) is currently setting the Strict-Transport-Security header for every resource it serves up, including API resources from my spring-web RestControllers, and static resources in /src/main/resources/static. The only exception I've found is /favicon.ico. The missing header on this file is triggering findings in our security scans and I'd like to clear them up.

Here's what I've tried so far:

  1. Disabled Spring's custom favicon handling with spring.mvc.favicon.enabled=false
  2. Added explicit header handling for all resources in HttpSecurity configuration:

    @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter {      @Override     protected void configure(HttpSecurity http) {         http.headers()             .httpStrictTransportSecurity()             .requestMatcher(request -> true);     } } 

It seems no matter what I do, this resource produces a different set of HTTP response headers than every other resource served up by Spring Boot. For instance, the cache control headers that are applied to all my other responses are absent from /favicon.ico.

Interestingly, I've found that the one header I am able to affect for this file is the Content-Type header (default behavior returns Content-Type: application/octet-stream) by adding a MimeMapping to a EmbeddedServletContainerCustomizer:

@Configuration public class WebConfigurer implements EmbeddedServletContainerCustomizer {      @Override     public void customize(ConfigurableEmbeddedServletContainer container) {         MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);         mappings.add("ico", "image/x-icon");         container.setMimeMappings(mappings);     } } 
     

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

SpringbootWebSEcurityConfiguration tiene una lista predeterminada de rutas ignoradas que se agregan a uno de los primeros filtros de seguridad en la pila del servlet:

  typeof111  

Puede anular esta lista de rutas ignoradas configurando la lista "ignorada" en un frijol de SecurityProperties.

  typeof2  

Pasar una lista nula o vacía en typeof3 Produce el comportamiento predeterminado, por lo que he agregado la palabra clave "None" para indicar que no quiero ignorar rutas. SpringbootWebsEcurityConfiguration elimina "Ninguno" de la lista antes de construir el filtro "Ignora".

 

SpringBootWebSecurityConfiguration has a default list of ignored paths that are added to one of the first security filters in the servlet stack:

private static List<String> DEFAULT_IGNORED = Arrays.asList(     "/css/**",      "/js/**",     "/images/**",      "/webjars/**",      "/**/favicon.ico"); 

You can override this list of ignored paths by setting the "ignored" list on a SecurityProperties bean.

@Bean public SecurityProperties securityProperties() {     SecurityProperties props = new SecurityProperties();     props.setIgnored(Arrays.asList("none"));     return props; } 

Passing a null or empty list into setIgnored() produces the default behavior, so I've added the keyword "none" to indicate I want no paths to be ignored. SpringBootWebSecurityConfiguration removes "none" from the list before building the "ignores" filter.

 
 

Relacionados problema

31  ¿Cómo doy a mis sitios web un icono para iPhone?  ( How do i give my websites an icon for iphone ) 
¿Cómo configuro el icono que aparece adecuado en el iPhone para los sitios web que he creado? ...

10  Icono de sitio web (rel = icono) No aparece en Chrome para Android  ( Website icon rel icon not appearing in chrome for android ) 
Tengo este código en cada página de mi sitio web. P8 Sin embargo, cuando voy a mi sitio web en Chrome para Android y toque "Añadir a la pantalla de inic...

0  ¿Cómo asegúrese de que IE10 / 11 / EDGE no use el icono "Tile" para el icono de la barra de direcciones / pestaña?  ( How to be sure that ie10 11 edge do not use the tile icon for the address bar ) 
¿Hay una manera de forzar a Internet Explorer y Edge para usar un favicon en particular para el icono de la barra de direcciones / pestaña? En general, esto...

7  ¿Cómo recuperar favicons sitios web?  ( How to retrieve web site favicons ) 
Estoy usando Ruby On Rails v3.0.9 Y me gustaría recuperar la imagen http://www.facebook.com/5 de cada sitio web para el que configuro un enlace. Es decir,...

2  Favicon muestra una imagen incorrecta  ( Favicon shows incorrect image ) 
Tengo una página que se copió de otro sitio y se modificó. Me refiero a un favicon en mi nuevo sitio. Cuando veo la página, está mostrando el favicon correcto...

0  Cambio de favicon en tema de WordPress  ( Changing favicon in wordpress theme ) 
Estoy personalizando un tema de prensa de palabras para mi blog. Estoy tratando de cambiar el favicon, pero no sé cómo hacerlo. Revisé todas las configuracion...

41  Favicon no funciona en IE  ( Favicon not working in ie ) 
Tengo un sitio usando un favicon.ico personalizado. El favicon muestra como se espera en todos los navegadores, excepto IE. Al intentar mostrar el favicon en ...

0  ¿Dónde está el favicon?  ( Where is the favicon ) 
Esta podría ser una pregunta tonta ... Por lo general, agrego mi favicon en el área del sitio, pero un desarrollador anterior ha establecido este sitio web. P...

73  ¿Cuáles son las dimensiones de píxeles correctas para un icono de Apple-Touch?  ( What are the correct pixel dimensions for an apple touch icon ) 
No estoy seguro de cuál debe ser el tamaño correcto. Muchos sitios parecen repetir que el icono de Apple-Touch debería ser de 57x57 píxeles, pero cita un en...

257  Sirviendo favicon.ico en ASP.NET MVC  ( Serving favicon ico in asp net mvc ) 
¿Cuál es la recomendación final / mejor para cómo servir favicon.ico en ASP.NET MVC? Actualmente estoy haciendo lo siguiente: Agregar una entrada a la ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos