Mozilla는 웹 사이트 구성을 확인하기위한 새로운 도구를 출시했습니다. observatory.mozilla.org
그러나 스캔이 쿠키 (-10 포인트)에 대해 불평하고 있습니다 : 보안 플래그없이 설정된 세션 쿠키 …
불행히도 내 nginx 뒤에서 실행되는 서비스는 SSL이 nginx에서 종료 될 때가 아니라 SSL이 직접 종료되는 경우에만 보안 헤더를 설정할 수 있습니다. 따라서 쿠키에 “보안”플래그가 설정되어 있지 않습니다.
어떻게 든 nginx를 사용하여 쿠키에 “보안”플래그를 추가 할 수 있습니까? 위치 / 경로 수정이 가능한 것 같습니다.
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_path
답변
나는 이것을 수행하는 두 가지 방법을 알고 있습니다. 첫 번째는 다음과 같이 proxy_cookie_path를 남용하는 것입니다.
proxy_cookie_path / "/; secure";
두 번째는 Headers More 모듈 의 more_set_headers 지시문을 다음 과 같이 사용하는 것입니다.
more_set_headers 'Set-Cookie: $sent_http_set_cookie; secure';
이들은 맹목적으로 항목을 추가하기 때문에 문제가 발생할 수 있습니다. 예를 들어 업스트림이 보안 플래그를 설정하면 다음과 같이 클라이언트에 복제본을 전송합니다.
Set-Cookie: foo=bar; secure; secure;
두 번째 경우에는 업스트림 앱이 쿠키를 설정하지 않으면 nginx가이를 브라우저로 보냅니다.
Set-Cookie; secure;
물론 이것은 doubleplusungood입니다.
많은 사람들이 질문 한대로이 문제를 해결해야한다고 생각합니다. 내 의견으로는 다음과 같은 지시문이 필요합니다.
proxy_cookie_set_flags * HttpOnly;
proxy_cookie_set_flags authentication secure HttpOnly;
그러나 아아, 이것은 현재 존재하지 않습니다 🙁