Ambiente:Nginx, Node.js, gota digital do oceano
Os documentos para oadd_headerdiretiva indica que ela pode ser usada em um contexto http
ou .server
location
No entanto, quando eu adiciono meupolítica de segurança de conteúdopara o contexto http
ou server
ele não é detectado quando eu testo emhttps://csp-evaluator.withgoogle.com/ouhttps://securityheaders.com/.
Quando eu o adiciono a um location
bloco, ambos os sites o detectam.
Exemplo de cabeçalho:
add_header content-security-policy "default-src 'self';"
O meu nginx.conf
possui 5 location
blocos, sendo um deles usado como proxy. Preciso adicionar content-security-policy
a cada bloco ou existe uma maneira melhor?
location ~* \.(jpg|png|svg|webp|ico)$ { }
location ~* \.(css)$ { }
location ~* \.(htm|html)$ { }
location ~* \.(js)$ { }
location / {
proxy_pass http://127.0.0.1:9999;
}
Também preciso adicionar todos os meus outros cabeçalhos de segurança principais a cada bloco? Parece redundante, mas se essa for a única maneira de proteger o site, farei isso.
Responder1
A add_header
directiva tem uma propriedade interessante. Dedocumentação:
Poderia haver várias
add_header
diretivas. Estas diretivas são herdadas do nível de configuração anterior se e somente se não houveradd_header
diretivas definidas no nível atual.
Isso significa que se você estiver adicionandooutrocabeçalhos em um desses location
blocos, então quaisquer add_header
diretivas dos blocos server
ou http
precisariam ser repetidas.
Considere usar include
arquivos d para organizar diretivas como esta que você pode precisar repetir.