
환경:Nginx, Node.js, 디지털 오션 드롭렛
에 대한 문서add_header지시문 은 또는 http
컨텍스트 에서 사용할 수 있음을 나타냅니다 .server
location
그러나 내가 추가하면콘텐츠 보안 정책http
또는 컨텍스트 에서 server
테스트할 때 감지되지 않습니다.https://csp-evaluator.withgoogle.com/또는https://securityheaders.com/. 블록
에 추가하면 location
두 사이트 모두 이를 감지합니다.
예시 헤더:
add_header content-security-policy "default-src 'self';"
내 블록 nginx.conf
은 5개이며 location
, 하나는 프록시로 사용됩니다. 모든 블록에 추가해야 합니까 content-security-policy
, 아니면 더 좋은 방법이 있습니까?
location ~* \.(jpg|png|svg|webp|ico)$ { }
location ~* \.(css)$ { }
location ~* \.(htm|html)$ { }
location ~* \.(js)$ { }
location / {
proxy_pass http://127.0.0.1:9999;
}
또한 각 블록에 다른 주요 보안 헤더를 모두 추가해야 합니까? 중복되는 것 같지만 그것이 사이트를 보호하는 유일한 방법이라면 그렇게 하겠습니다.
답변1
지시어 add_header
에는 흥미로운 속성이 있습니다. 로부터선적 서류 비치:
여러 가지 지시문이 있을 수 있습니다
add_header
. 이러한 지시어는add_header
현재 수준에 정의된 지시어가 없는 경우에만 이전 구성 수준에서 상속됩니다 .
이는 추가하는 경우를 의미합니다.다른해당 블록 중 하나에 헤더가 있으면 또는 블록 의 location
모든 지시문을 반복해야 합니다.add_header
server
http
include
반복해야 할 수 있는 이와 같은 지시문을 구성하려면 d 파일을 사용하는 것이 좋습니다 .