Nginx प्रॉक्सी सर्वर से कुकीज़ में सुरक्षित ध्वज जोड़ें


12

मोज़िला ने आपकी वेबसाइट कॉन्फ़िगरेशन की जाँच करने के लिए एक नया टूल जारी किया। observatory.mozilla.org

लेकिन स्कैन कुकीज़ (-10 अंक) के बारे में शिकायत कर रहा है: बिना सुरक्षित ध्वज के सत्र कुकी सेट ...

दुर्भाग्यवश, मेरे nginx के पीछे चल रही सेवा केवल सुरक्षित हेडर सेट कर सकती है यदि SSL सीधे वहां समाप्त होता है और जब 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 / "/; secure";

दूसरा हेडर्स से अधिक_सेट_हेडर्स निर्देश का उपयोग करना है , इस तरह से अधिक मॉड्यूल:

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

ये दोनों समस्याएं पेश कर सकते हैं क्योंकि वे नेत्रहीन रूप से आइटम जोड़ते हैं। उदाहरण के लिए यदि अपस्ट्रीम सुरक्षित ध्वज को सेट करता है तो आप ग्राहक को इस तरह डुप्लिकेट भेजते हुए हवा देंगे:

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

और दूसरे मामले में यदि अपस्ट्रीम ऐप कुकी नग्नेक्स को सेट नहीं करता है तो यह ब्राउज़र को भेज देगा:

Set-Cookie; secure;

यह निश्चित रूप से डबलप्लसडूड है।

मुझे लगता है कि इस समस्या को ठीक करने की आवश्यकता है क्योंकि कई लोगों ने इसके बारे में पूछा है। मेरी राय में एक निर्देश कुछ इस तरह की जरूरत है:

proxy_cookie_set_flags * HttpOnly;
proxy_cookie_set_flags authentication secure HttpOnly;

लेकिन अफसोस, यह वर्तमान में मौजूद नहीं है :(


कुकी पथ वास्तव में एक अच्छा समाधान की तरह दिखता है। मुझे लगता है कि मैं पहले कोशिश करूंगा। आपकी सहायता के लिए धन्यवाद।
ST-DDT

1
मैंने मंच में एक सुविधा अनुरोध उठाया ; उम्मीद है कि लेखक उस में रुचि रखते हैं।
फ्रेंकलिन यू

3

Nginx_cookie_flag_module का उपयोग करने का प्रयास करें । यह आपकी समस्या को हल कर देगा।

अस्वीकरण: मैं मॉड्यूल का लेखक हूं।


3
क्या आप इस बात की विस्तृत जानकारी दे सकते हैं कि मॉड्यूल कैसे सेटअप और कॉन्फ़िगर किया गया है। README को लगता है कि इसके लिए पुनर्निर्माण की आवश्यकता है, जो कई सेटअपों में स्वीकार्य नहीं हो सकता है।
थॉमस निमन

हां, इस मॉड्यूल के उपयोग के लिए Nginx के पुनर्निर्माण की आवश्यकता है। अन्यथा आप इसे निर्देश का उपयोग नहीं कर सकते। यह सभी तृतीय-पक्ष मॉड्यूल पर लागू होता है। कई मामलों में, नगनेक्स पुनर्निर्माण में ज्यादा समय नहीं लगता है।
एयरिस

@ThomasNyman पुनर्निर्माण NGINX प्लस के लिए भुगतान करके बचा जा सकता है, जैसा कि NGINX से निर्देश में बताया गया है ।
फ्रैंकलिन यू

1
@ एयरिस तो आप लेखक हैं? महान नौकरी, दोस्त, लेकिन एक अस्वीकरण जोड़ने के लिए बेहतर है।
फ्रैंकलिन यू

@ क्रिस ने हमने ngnix के 1.17.1 संस्करण के साथ मॉड्यूल का उपयोग करने का प्रयास किया: अल्पाइन, लेकिन हम मॉड्यूल को nginx.conf में लोड करने का प्रयास करने के बाद एक बार निम्नलिखित त्रुटियों का सामना करते हैं। 'मॉड्यूल "/usr/local/nginx/modules/ngx_http_cookie_flag_filter_module.so" बाइनरी संगत नहीं है'
लोकेश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.