Configuración de httpStrictTransportSecurity y contentSecurityPolicy
En mi aplicación Spring Boot, tengo una clase de configuración de seguridad en la que estoy tratando de establecer los encabezados de seguridad de respuesta, es decir, httpStrictTransportSecurity
y contentSecurityPolicy
, los cuales no se están obteniendo en la respuesta. Agradecería mucho cualquier ayuda.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.headers()
.frameOptions().deny()
.xssProtection()
.and()
.contentSecurityPolicy("default-src 'self'; script-src 'self' '=== key ==='")
.and()
.referrerPolicy(referrerPolicy -> referrerPolicy.policy(ReferrerPolicyHeaderWriter.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN))
.httpStrictTransportSecurity()
.includeSubDomains(true)
.maxAgeInSeconds(31536000);
}
Después de establecer contentSecurityPolicy
y maxAgeInSeconds
en 31536000
, todavía obtenemos strict-transport-security:max-age
como 15724800
y no podemos ver contentSecurityPolicy
en la respuesta.
davy.ai
Puede haber diferentes razones por las cuales los encabezados
contentSecurityPolicy
yhttpStrictTransportSecurity
no aparecen en la respuesta.En primer lugar, asegúrese de que los encabezados
Content-Security-Policy
yStrict-Transport-Security
no estén establecidos en otro lugar de su código de aplicación, ya que podrían anular los que ha configurado en su clase de configuración de seguridad.En segundo lugar, verifique si alguna otra clase de configuración de seguridad está anulando o entrando en conflicto con su clase de configuración. En tal caso, es posible que deba reordenar los filtros o dar prioridad a los encabezados para garantizar que no se estén sobrescribiendo.
En tercer lugar, asegúrese de que su aplicación Spring Boot se esté ejecutando en HTTPS y no en HTTP, ya que el encabezado
httpStrictTransportSecurity
solo funciona sobre HTTPS.Finalmente, puede depurar los encabezados utilizando una herramienta como las herramientas para desarrolladores del navegador o el comando curl para inspeccionar los encabezados de respuesta y verificar qué encabezados se están estableciendo y cuáles se están sobrescribiendo o ignorando.
Siguiendo estos pasos, puede solucionar y resolver el problema de que los encabezados
httpStrictTransportSecurity
ycontentSecurityPolicy
no aparezcan en la respuesta.