2015-08-11 7 views
191

मैं, एक HTTP (गैर HTTPS) साइट के लिए एक पोस्ट अनुरोध किए गए Chrome की डेवलपर टूल में अनुरोध का निरीक्षण किया, और पाया कि यह यह सर्वर को भेजने से पहले अपने स्वयं के हैडर कहा:"अपग्रेड-असुरक्षित-अनुरोध" HTTP शीर्षलेख क्या है?

Upgrade-Insecure-Requests: 1 

एक करने के बाद Upgrade-Insecure-Requests पर खोज, मैं केवल information सर्वर this हैडर भेजने के बारे में पा सकते हैं: wherea

Content-Security-Policy: upgrade-insecure-requests 

यह संबंधित लगता है, लेकिन अभी भी मेरे मामले में के बाद से बहुत अलग, ग्राहक अनुरोध में हेडर भेज रहा है, मुझे मिली सभी जानकारी SERVER से संबंधित हैडर को प्रतिक्रिया में संबंधित शीर्षलेख भेजना है।


तो क्यों क्रोम (44.0.2403.130 मी) मेरा अनुरोध Upgrade-Insecure-Requests और यह क्या करता है जोड़ने है?


अद्यतन 2016/08/24:

इस शीर्ष लेख के बाद से एक W3C Candidate Recommendation के रूप में जोड़ दिया गया है और अब आधिकारिक तौर पर मान्यता प्राप्त है।

उन लोगों के लिए जो अभी इस प्रश्न में आए हैं और उलझन में हैं, excellent answer साइमन ईस्ट द्वारा इसे अच्छी तरह से समझाता है।

HTTPS: 1in the previous W3C Working Draft हुआ करता था Upgrade-Insecure-Requests: 1 शीर्षक और नाम दिया गया था चुपचाप क्रोम से पहले परिवर्तन आधिकारिक तौर पर स्वीकार कर लिया गया।

(यह सवाल इस संक्रमण के दौरान कहा गया था जब वहाँ इस शीर्षक पर कोई आधिकारिक दस्तावेज थे और क्रोम केवल ब्राउज़र है कि इस शीर्ष लेख भेजा था।)

+1

फ़ायरफ़ॉक्स यह भी करता है। – dakab

+0

नया होना चाहिए; मैं पहले फ़ायरफ़ॉक्स पर विकास करता हूं और यह हेडर निश्चित रूप से पिछले साल फ़ायरफ़ॉक्स से नहीं भेजा गया था। – user193130

उत्तर

244

लघु जवाब: इसे बारीकी से Content-Security-Policy: upgrade-insecure-requests प्रतिक्रिया हेडर से संबंधित है, यह दर्शाता है कि ब्राउज़र इसका समर्थन करता है (और वास्तव में इसे पसंद करता है)।

मुझे गुगलिंग के 30 मिनट लगे, लेकिन अंततः मुझे इसे डब्ल्यू 3 स्पेक में दफनाया गया।

भ्रम आता है क्योंकि कल्पना में हेडर HTTPS: 1 था, और यह कैसे क्रोमियम ने इसे लागू किया है, लेकिन इस के बाद broke lots of websites that were poorly coded (विशेष रूप से वर्डप्रेस और WooCommerce) क्रोमियम टीम से माफी मांगी:

"मैं के लिए माफी माँगता टूटना; मैंने स्पष्ट रूप से देव और बीटा के दौरान प्रतिक्रिया के आधार पर प्रभाव को कम करके आंका। "
- माइक पश्चिम में Chrome Issue 501842

उनके ठीक Upgrade-Insecure-Requests: 1 को यह नाम बदलने के लिए था, और कल्पना के बाद से मिलान करने के लिए अद्यतन किया गया है।

वैसे भी, यहां the W3 spec (as it appeared at the time) से स्पष्टीकरण है ...

HTTPS HTTP अनुरोध हेडर क्षेत्र सर्वर एक एन्क्रिप्टेड और प्रमाणीकृत प्रतिक्रिया के लिए ग्राहक की वरीयता व्यक्त करने के लिए एक संकेत भेजता है, और कहा कि इसे सफलतापूर्वक संभाल कर सकते हैं उन्नयन-असुरक्षित-अनुरोध आदेश बनाने के लिए निर्देश प्रदान करने के लिए संभव के रूप में निर्बाध के रूप में वरीयता।

...

एक सर्वर एक HTTP अनुरोध के हेडर में यह प्राथमिकता का सामना करना पड़ता है, यह अनुरोध किया जा रहा संसाधन के एक संभावित सुरक्षित प्रतिनिधित्व करने के लिए उपयोगकर्ता रीडायरेक्ट करना चाहिए।

जब किसी सर्वर को एचटीटीपीएस अनुरोध के शीर्षकों में इस वरीयता का सामना करना पड़ता है, तो अनुरोध में होस्ट एचएसटीएस-सुरक्षित या सशर्त रूप से एचएसटीएस-सुरक्षित [आरएफसी 6797] है, तो प्रतिक्रिया में Strict-Transport-Security शीर्षलेख शामिल होना चाहिए।

+1

मैं इसे समझने में असफल रहा। मैं 'a.com 'हूं और आपको' b.com' पर रीडायरेक्ट करता हूं, जबकि यह हेडर 'b.com' पर प्रदान करता है और कुछ जानकारी भेजता है। यदि आप 'b.com' पर सुरक्षित चैनल के अंतर्गत नहीं हैं, तो एक स्नीफिंग-हमला पहले से ही हो सकता है, क्योंकि मैंने अपने अनुरोध के साथ 'b.com' पर डेटा भेजा है। क्या आप हमें एक साधारण परिदृश्य में मार्गदर्शन कर सकते हैं कि यह उपयोगकर्ताओं के लिए कनेक्शन को और अधिक सुरक्षित बनाता है? –

+0

@ सईदनेमाती एक बहुत सख्त परिप्रेक्ष्य के तहत यह कुछ और सुरक्षित नहीं बनाता है। यदि आपके पास सामान्य सुरक्षा आवश्यकताएं हैं तो आपको यह सुनिश्चित करना होगा कि आप पहले HTTPS के माध्यम से कनेक्ट हों और इस पर भरोसा न करें। ऐसा कहा जा रहा है, मैं इसे "[पहले उपयोग पर ट्रस्ट] (https://en.wikipedia.org/wiki/Trust_on_first_use)" के विचार के संदर्भ में वर्णित करता हूं, जो * निष्क्रिय * मदद करता है। – tne

+1

मैं सुरक्षा उपकरण की तुलना में ग्राहक की इच्छा के रूप में इसे और अधिक देखता हूं। यह "डीएनटी" हेडर की तरह है, सर्वर इसे अनदेखा कर सकता है, लेकिन फिर भी यह ग्राहक की इच्छा व्यक्त करता है। – DUzun

0

यह पूरी बात बताते हैं:

HTTP सामग्री-सुरक्षा-नीति (सीएसपी) का उन्नयन-असुरक्षित-अनुरोध निर्देश प्रयोक्ता एजेंट को निर्देश देता है एक साइट की सुरक्षित URL को के सभी (उन की सेवा के इलाज के लिए HTTP पर) जैसे कि उन्हें सुरक्षित यूआरएल (एचटीटीपीएस पर सेवा दी गई) के साथ बदल दिया गया है। यह निर्देश वेब साइटों के लिए है, जिनकी बड़ी संख्या में असुरक्षित विरासत यूआरएल हैं जिन्हें लिखा जाना चाहिए।

अपग्रेड-असुरक्षित-अनुरोध निर्देश का मूल्यांकन ब्लॉक-ऑल-मिश्रित सामग्री से पहले किया जाता है और यदि यह सेट किया गया है, तो बाद वाला प्रभावी रूप से नो-ऑप है। एक निर्देश या अन्य सेट करने की अनुशंसा की जाती है, लेकिन दोनों नहीं।

उन्नयन-असुरक्षित-अनुरोध निर्देश सुनिश्चित नहीं होगा कि उपयोगकर्ताओं को तृतीय पक्ष साइट पर लिंक के माध्यम से अपनी साइट पर जाकर उच्च-स्तरीय नेविगेशन के लिए HTTPS करने के लिए उन्नत किया जाएगा और इस प्रकार सख्त-Transport- को प्रतिस्थापित नहीं करता सुरक्षा (एचएसटीएस) हेडर, जिसे अभी भी उचित अधिकतम आयु के साथ सेट किया जाना चाहिए ताकि यह सुनिश्चित किया जा सके कि उपयोगकर्ता एसएसएल स्ट्रिपिंग हमलों के अधीन नहीं हैं।

स्रोत: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests

संबंधित मुद्दे