Nginx reverse proxy'de çerezler için güvenli bayrak nasıl ayarlanır?


12

Ben sadece https sadece bir site sunmak için ters proxy olarak nginx kullanıyorum. Bu site için çerezlerin güvenli olarak işaretlenmesini istiyorum. Ancak arka uç sunucusu bir http sunucusudur, bu nedenle çerezlere güvenli bayrağı ayarlamaz. Güvenli bir bayrak eklemek için Set-Cookie başlığını nasıl değiştirebilirim?


Sordum ve SO üzerinde cevap verdi. Tomcat7 için nginx örneği için SO'ya bakın: stackoverflow.com/questions/19916906/…
Joseph Lust

1
Böyle bir geçersiz kılma şu anda mümkün değil, ancak şu konuda bir sorun / bilet var proxy_cookie_secure: trac.nginx.org/nginx/ticket/368 Ancak henüz uygulanmadı (ve sorun eski).
kilim

Bu üçüncü taraf modülü size yardımcı olabilir.
Airis

Yanıtlar:


4

Eğer nginx vekil arka uç tarafından oluşturulan çerezleri değiştirmek ve güvenli bayrağı set almak mümkün olabilir - ilham bakınız için bir nginx ters vekil Set-Cookie etki alanı bölümü yeniden nasıl? .

Ancak, güvenli bayrağı ayarlamak için arka uçta çerez oluşturan her şeyi almanın daha iyi bir çözüm olacağını hayal ediyorum. Bunu nasıl yapacağınız başka bir hikaye (veya soru :).


4
X-Forwarded-ProtoÜstbilgiyi ayarlamanıza ve uygulamanız tarafından yorumlandığından emin olmanıza yardımcı olabilir . Bu yaygın bir tekniktir ve ayrıca karışık http / https uygulamalarının protokole göre düzgün tepki vermesini sağlar.
Lukas

4

Aşağıdaki nginx yapılandırma kodunu kullanıyorum:

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

Bunu dinamik yapmak için normal ifade yerine elbette FQDN'yi kullanabilirsiniz.


Bu sadece yanıtta mı yoksa hem istek hem de yanıtta mı? İstemci güvenli bayrak kümesi ile bir istek gönderdiğinde nginx web sunucusu şikayet değil böylece şerit?
Tigran

İstemciler Cookiebaşlıktaki güvenli bayrağı geri göndermez .
r_3

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.