Jak ustawić bezpieczną flagę dla plików cookie w odwrotnym proxy nginx?

12

Używam nginx jako odwrotnego proxy do obsługi witryny tylko https. Chcę, aby pliki cookie tej witryny zostały oznaczone jako bezpieczne. Ale serwer zaplecza jest serwerem http, więc nie ustawi bezpiecznej flagi dla swoich plików cookie. Jak mogę zmodyfikować nagłówek Set-Cookie w odpowiedzi, aby dodać bezpieczną flagę?

Tianyi Cui
źródło
Pytanie i odpowiedź na SO. Zobacz SO dla przykładu nginx dla Tomcat7: stackoverflow.com/questions/19916906/…
Joseph Lust
1
Takie zastąpienie nie jest obecnie możliwe, ale istnieje problem / bilet dotyczący proxy_cookie_secure: trac.nginx.org/nginx/ticket/368 Jednak nie jest jeszcze zaimplementowany (a problem jest stary).
rugk
Ten moduł innej firmy może ci pomóc.
Airis

Odpowiedzi:

4

Być może będziesz mógł poprosić swojego proxy nginx o zmodyfikowanie plików cookie utworzonych przez backend i ustawić bezpieczną flagę - po inspirację zobacz Jak przepisać część domeny Set-Cookie w odwrotnym proxy nginx? .

Wyobrażam sobie jednak, że uzyskanie wszystkiego, co tworzy plik cookie na zapleczu w celu ustawienia bezpiecznej flagi, będzie lepszym rozwiązaniem. Jak to robisz, to inna historia (lub pytanie :).

Jon Rhoades
źródło
4
Może to pomóc ustawić X-Forwarded-Protonagłówek i upewnić się, że jest on interpretowany przez aplikację. Jest to powszechna technika, która umożliwia także poprawne reagowanie mieszanych aplikacji http / https na podstawie protokołu.
Lukas
4

Używam następującego kodu konfiguracji nginx:

# make cookie secure (case sensitive)
proxy_cookie_domain ~(?P<secure_domain>([-0-9a-z]+\.)?[-0-9a-z]+\.[a-z]+)$ "$secure_domain; secure";

Zamiast wyrażenia regularnego, aby uczynić to dynamicznym, możesz oczywiście użyć nazwy FQDN.

r_3
źródło
Czy to tylko na odpowiedź, czy na żądanie i odpowiedź. Kiedy klient wysyła żądanie z ustawionym bezpiecznym znacznikiem, czy nginx usuwa je, aby serwer WWW nie narzekał?
Tigran
Klienci nie wysyłają bezpiecznej flagi w Cookienagłówku.
r_3