Nginx Proxy sunucusundan Çerezlere Güvenli Bayrak Ekleme


12

Mozilla, web sitesi yapılandırmanızı kontrol etmek için yeni bir araç yayınladı. observatory.mozilla.org

Ancak tarama Çerezler (-10 puan) hakkında şikayet ediyor: Güvenli bayrağı olmadan oturum çerezi ayarlandı ...

Maalesef nginx'imin arkasında çalışan hizmet, güvenli üstbilgiyi ancak SSL doğrudan orada sona ererse ve SSL nginx'te sona erdiğinde ayarlayamaz. Bu nedenle "Güvenli" bayrağı çerezlerde ayarlanmaz.

"Güvenli" bayrağını bir şekilde nginx kullanarak çerezlere eklemek mümkün müdür? Konumu / yolu değiştirmek mümkün görünmektedir.

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

Yanıtlar:


11

Bunu yapmanın iki yolunu biliyorum, ikisi de harika. Birincisi, proxy_cookie_path işlevini şu şekilde kötüye kullanmaktır:

proxy_cookie_path / "/; secure";

İkincisi, Headers More modülünün more_set_headers yönergesini şu şekilde kullanmaktır :

more_set_headers 'Set-Cookie: $sent_http_set_cookie; secure';

Bunların her ikisi de öğeleri körü körüne ekledikleri için sorun yaratabilir. Örneğin, yukarı akış güvenli bayrağı ayarlarsa, istemciye aşağıdaki gibi bir kopya gönderirsiniz:

Set-Cookie: foo=bar; secure; secure;

ikinci durumda, yukarı akış uygulaması bir çerez ayarlamazsa nginx bunu tarayıcıya gönderir:

Set-Cookie; secure;

Tabii ki bu çiftplusungood.

Bence birçok insanın sorduğu gibi bu sorunun çözülmesi gerekiyor. Bence bir direktif böyle bir şeye ihtiyaç duyuyor:

proxy_cookie_set_flags * HttpOnly;
proxy_cookie_set_flags authentication secure HttpOnly;

ama ne yazık ki, şu anda mevcut değil :(


Çerez yolu gerçekten güzel bir çözüm gibi görünüyor. Sanırım ilk önce bunu deneyeceğim. Yardımınız için teşekkürler.
ST-DDT

1
Forumda bir özellik isteği dile getirdim ; umarım yazar bununla ilgilenir.
Franklin Yu

3

Nginx_cookie_flag_module kullanmaya çalışın . Sorununuzu çözecektir.

Feragatname: Modülün yazarıyım.


3
Modülün nasıl kurulduğunu ve yapılandırıldığını ayrıntılandırabilir misiniz? README, birçok kurulumda kabul edilemeyecek nginx'i yeniden oluşturmayı gerektirdiğini düşünüyor.
Thomas Nyman

Evet, bu modülün kullanımı Nginx'in yeniden oluşturulmasını gerektirir. Aksi takdirde direktifini kullanamazsınız. Bu, tüm üçüncü taraf modüller için geçerlidir. Çoğu durumda, nginx yeniden inşası çok zaman almaz.
Airis

@ThomasNyman Yeniden oluşturma, NGINX'in talimatında açıklandığı gibi NGINX Plus için ödeme yapılarak önlenebilir .
Franklin Yu

1
@Airis Yani sen yazar mısın? İyi iş, dostum, ama bir feragatname eklemek daha iyi.
Franklin Yu

@Aris modülünü 1.17.1 ngnix: alpine sürümüyle kullanmaya çalıştık, ancak modülleri nginx.conf dosyasına yüklemeye çalıştığımızda aşağıdaki hatalarla karşılaşıyoruz. 'module "/usr/local/nginx/modules/ngx_http_cookie_flag_filter_module.so" ikili uyumlu değil "
Lokesh
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.