¿Con Nginx tengo que agregar una política de seguridad de contenido a cada bloque de ubicación?

¿Con Nginx tengo que agregar una política de seguridad de contenido a cada bloque de ubicación?

Ambiente:Nginx, Node.js, Gota oceánica digital

Los documentos para elagregar_encabezadoLa directiva indica que se puede utilizar en un httpcontexto servero location.

Sin embargo, cuando agrego mipolítica-de-seguridad-de-contenidoal contexto o httpno serverse detecta cuando lo pruebo enhttps://csp-evaluator.withgoogle.com/ohttps://securityheaders.com/.
Cuando lo agrego a un locationbloque, ambos sitios lo detectan.

Encabezado de ejemplo:

add_header content-security-policy "default-src 'self';"

Mi nginx.conftiene 5 locationbloques, uno de los cuales se usa como proxy. ¿Necesito agregar content-security-policya cada bloque o hay una manera mejor?

location ~* \.(jpg|png|svg|webp|ico)$ { }
location ~* \.(css)$ { }
location ~* \.(htm|html)$ { }
location ~* \.(js)$ { }
location / {
    proxy_pass http://127.0.0.1:9999;
}

¿También necesito agregar todos mis otros encabezados de seguridad principales a cada bloque? Parece redundante, pero si esa es la única forma de proteger el sitio, lo haré.

Respuesta1

La add_headerdirectiva tiene una propiedad interesante. Desde eldocumentación:

Podría haber varias add_headerdirectivas. Estas directivas se heredan del nivel de configuración anterior si y sólo si no hay add_headerdirectivas definidas en el nivel actual.

Esto significa que si estás agregandootroencabezados en uno de esos locationbloques, entonces cualquier add_headerdirectiva de los bloques servero httpdeberá repetirse.

Considere usar includearchivos d para organizar directivas como esta que quizás necesite repetir.

información relacionada