Nginx 프록시 서버에서 쿠키에 보안 플래그 추가


12

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

답변:


11

나는 이것을 수행하는 두 가지 방법을 알고 있습니다. 첫 번째는 다음과 같이 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;

그러나 아아, 이것은 현재 존재하지 않습니다 :(


쿠키 경로는 실제로 좋은 해결 방법처럼 보입니다. 나는 그것을 먼저 시도 할 것이라고 생각합니다. 당신의 도움을 주셔서 감사합니다.
ST-DDT

1
포럼에서 기능 요청 을 제기했습니다 . 바라건대 저자는 그것에 관심이 있습니다.
Franklin Yu

3

nginx_cookie_flag_module 을 사용 하십시오 . 문제가 해결됩니다.

면책 조항 : 나는 모듈의 저자입니다.


3
모듈 설정 및 구성 방법에 대해 자세히 설명해 주시겠습니까? 읽어보기는 nginx를 재 구축해야한다고 제안하는 것 같습니다. 이는 많은 설정에서 허용되지 않을 수 있습니다.
Thomas Nyman

예,이 모듈을 사용하려면 Nginx를 다시 빌드해야합니다. 그렇지 않으면 지시어를 사용할 수 없습니다. 이것은 모든 타사 모듈에 적용됩니다. 많은 경우에 nginx 재 구축에는 많은 시간이 걸리지 않습니다.
Airis

NGINX의 지침에 설명 된대로 NGINX Plus를 지불하면 @ThomasNyman Rebuilding을 피할 수 있습니다 .
Franklin Yu

1
@Airis 그래서 당신은 저자입니까? 훌륭한 직업, 친구, 그러나 면책 조항을 추가하는 것이 좋습니다.
Franklin Yu

@Aris는 1.17.1 버전의 ngnix : alpine으로 모듈을 사용하려고 시도했지만 nginx.conf에 모듈을로드하려고하면 다음 오류가 발생합니다. 'module "/usr/local/nginx/modules/ngx_http_cookie_flag_filter_module.so"는 이진 호환되지 않습니다 "
Lokesh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.