प्रॉम्प्ट और दायरा
आपकी ऑथेंटिकेटेड API HTTP और HTTPS दोनों पर सुनती है, और HTTP अनुरोधों को HTTPS के लिए 301 प्राप्त होता है। जोखिम, सर्वर और क्लाइंट में बदलाव, और लीगेसी क्लाइंट्स के लिए माइग्रेशन योजना की व्याख्या करें। यह प्रॉम्प्ट HTTPAPI वर्किंग ग्रुप के मई 2026 के Internet-Draft पर आधारित है; यह अभी भी प्रगति पर है और अंतिम RFC नहीं है।
इंटरव्यूअर क्या जांच रहा है
- यह पहचानना कि रीडायरेक्ट होने से पहले क्रेडेंशियल्स एक प्लेनटेक्स्ट नेटवर्क को पार कर चुके हैं।
- HSTS, HTTPS DNS रिकॉर्ड्स, कनेक्शन ब्लॉकिंग और Secure कुकीज़ का संयोजन करना।
- शेयर्ड होस्ट्स, लीगेसी क्लाइंट्स, प्रॉक्सीज़ और क्रेडेंशियल रिवोकेशन को संभालना।
- केवल "HTTPS का उपयोग करें" कहने के बजाय मापने योग्य सिग्नल्स के साथ जोखिम में कमी साबित करना।
उत्तर देने से पहले स्पष्ट करने योग्य प्रश्न
- क्या HTTP और HTTPS समान होस्टनेम और लिसनर का उपयोग करते हैं?
- क्या क्रेडेंशियल्स Bearer टोकन, कुकीज़, API कीज़ या अनुरोध हस्ताक्षर हैं?
- क्या ऐसे लीगेसी क्लाइंट्स, एंटरप्राइज प्रॉक्सीज़ या आंतरिक कॉलर्स हैं जो तुरंत अपग्रेड नहीं कर सकते?
- क्या HTTP एंट्री पॉइंट अनऑथेंटिकेटेड रिसोर्सेज भी सर्व करता है?
- क्या आप पहले से ही HSTS, HTTPS DNS रिकॉर्ड्स, की रोटेशन और ऑडिट लॉग्स का उपयोग करते हैं?
30-सेकंड उत्तर ढांचा
एक रीडायरेक्ट प्लेनटेक्स्ट में पहले ही भेजे जा चुके क्रेडेंशियल्स को वापस नहीं पा सकता है; एक पैसिव ऑब्जर्वर Bearer टोकन या कुकी को कॉपी कर सकता है। ऑथेंटिकेटेड कनेक्शन से पहले HTTP एंट्री को विफल करने को प्राथमिकता दें, पहले उपयोग और बार-बार होने वाले गलत कॉन्फ़िगरेशन को कम करने के लिए HTTPS DNS रिकॉर्ड्स और HSTS का उपयोग करें, कुकीज़ पर Secure सेट करें, और क्लाइंट्स द्वारा डिफ़ॉल्ट रूप से असुरक्षित URLs को अस्वीकार करवाएं। यदि तत्काल ब्लॉकिंग असंभव है, तो क्रेडेंशियल वाले प्रत्येक प्लेनटेक्स्ट अनुरोध के लिए समान 403 लौटाएं और लीक हुए संभावित क्रेडेंशियल्स को रिवोक करें। मेट्रिक्स, एक ग्रे पीरियड और रोलबैक के साथ माइग्रेट करें।
चरण-दर-चरण गहन विश्लेषण
1. समझाएं कि लीक कब होता है
क्लाइंट पहले एक HTTP अनुरोध भेजता है, जिसमें संभावित रूप से Authorization, एक कुकी या एक API की शामिल हो सकती है। बाद का 301 उस डेटा को नहीं मिटा सकता जो नेटवर्क को पार कर चुका है। एक अटैकर Bearer टोकन या कुकी को रिप्ले कर सकता है। एक सफल HTTPS पुनः प्रयास क्लाइंट के गलत कॉन्फ़िगरेशन को लंबे समय तक छुपा भी सकता है।
2. सर्वर एंट्री पॉइंट डिज़ाइन करें
ऑथेंटिकेटेड एंडपॉइंट्स के लिए, पहले सार्वजनिक प्लेनटेक्स्ट लिसनिंग को अक्षम करें या पोर्ट 80 को स्पष्ट रूप से विश्वसनीय नेटवर्क तक सीमित करें। 301 को सुरक्षा नियंत्रण न मानें। यदि किसी शेयर्ड होस्ट को HTTP बनाए रखना आवश्यक है, तो गेटवे को क्रेडेंशियल-युक्त अनुरोधों को पहचानना चाहिए और क्रेडेंशियल मान्य है या नहीं यह बताए बिना समान 403 लौटाना चाहिए।
HTTP/1.1 403 Forbidden
Cache-Control: no-store
Content-Length: 0प्रतिक्रिया मान्य और अमान्य क्रेडेंशियल्स के लिए भिन्न नहीं होनी चाहिए, अन्यथा अटैकर को चोरी किए गए मानों के लिए एक परीक्षण ऑरेकल मिल जाता है।
3. पहले उपयोग की क्लाइंट गलतियों को कम करें
HTTPS DNS रिकॉर्ड्स कनेक्शन सेटअप के दौरान क्लाइंट को सुरक्षित कनेक्शन का उपयोग करने के लिए कह सकते हैं। HSTS एक सफल HTTPS विज़िट के बाद बाद के कनेक्शन्स को अपग्रेड करता है। दोनों में से कोई भी पूर्ण नहीं है: HSTS उस पूर्व कनेक्शन और क्लाइंट पर्सिस्टेंस पर निर्भर करता है, जबकि DNS रिकॉर्ड्स को ब्लॉक किया जा सकता है। SDKs, CLIs और कॉन्फ़िगरेशन वैलिडेशन को डिफ़ॉल्ट रूप से http को अस्वीकार करना चाहिए और एक कार्रवाई योग्य समाधान संदेश प्रदान करना चाहिए।
4. क्रेडेंशियल उपयोग को प्रतिबंधित करें
कुकीज़ में Secure विशेषता होनी चाहिए। टोकन सुरक्षित संदर्भों तक सीमित होने चाहिए, जहां उपयुक्त हो अनुरोध- या कनेक्शन-बाउंड हस्ताक्षर होने चाहिए। क्रेडेंशियल प्रकार के आधार पर रिवोकेशन अलग होता है: रिप्ले करने योग्य API कीज़, Bearer टोकन और कुकीज़ को आम तौर पर तत्काल रिवोकेशन की आवश्यकता होती है, जबकि एक गैर-जाली व्युत्पन्न हस्ताक्षर को इसकी आवश्यकता नहीं हो सकती है।
5. उजागर हुए क्रेडेंशियल्स को संभालें
प्लेनटेक्स्ट पर प्राप्त किसी भी क्रेडेंशियल को संभावित रूप से समझौता किया हुआ मानें। सर्वर पहले एक समान 403 लौटा सकता है, फिर अगले सुरक्षित उपयोग पर "क्रेडेंशियल रिवोक किया गया" समझा सकता है। ऑडिट लॉग में रिवोकेशन रिकॉर्ड करें, ओनर को इसे रोटेट करने के लिए सूचित करें, और कभी भी संवेदनशील मानों को लॉग्स, कैशे या एरर बॉडीज में न रखें।
6. सुरक्षित रूप से माइग्रेट करें
SDKs और परीक्षण परिवेशों में पहले HTTP को अस्वीकार करें, फिर नए टेनेंट्स के लिए प्लेनटेक्स्ट एंट्री पॉइंट को अक्षम करें, और अंत में बैचों में लीगेसी टेनेंट्स को माइग्रेट करें। पुराने प्रॉक्सी की आवश्यकता वाले क्लाइंट्स को एक छोटा ट्रांज़िशन एंडपॉइंट दें जो कभी भी क्रेडेंशियल्स स्वीकार नहीं करता है। एक समय सीमा निर्धारित करें, 403 दरों और रोटेशन पूर्णता की निगरानी करें, और जब सार्वजनिक संसाधनों को अभी भी HTTP की आवश्यकता हो तो ऑथेंटिकेटेड APIs को एक अलग होस्टनेम या गेटवे पॉलिसी में ले जाएं।
7. नियंत्रणों को सत्यापित करें
यह पुष्टि करने के लिए पैकेट कैप्चर का उपयोग करें कि Authorization, कुकीज़ और API कीज़ कभी भी प्लेनटेक्स्ट पर दिखाई न दें। कनेक्शन विफलता और 403 व्यवहार को सत्यापित करें, फिर HSTS कैशिंग, पहली विज़िट, प्रॉक्सीज़, पुनः प्रयास और रोलबैक का परीक्षण करें। प्लेनटेक्स्ट अनुरोधों, क्रेडेंशियल-युक्त प्लेनटेक्स्ट अनुरोधों, स्वचालित रिवोकेशन, 403 फाल्स पॉजिटिव, लीगेसी-क्लाइंट शेयर और माइग्रेशन पूर्णता को ट्रैक करें।
उच्च-गुणवत्ता वाला नमूना उत्तर
मैं एक 301 को ऑथेंटिकेटेड API के लिए सुरक्षा समाधान नहीं मानूंगा, क्योंकि रीडायरेक्ट से पहले क्रेडेंशियल पहले ही एक प्लेनटेक्स्ट नेटवर्क को पार कर चुका होता है। एक पैसिव ऑब्जर्वर Bearer टोकन या कुकी को कॉपी कर सकता है, और एक सफल HTTPS पुनः प्रयास क्लाइंट की गलती को छुपा सकता है।
सर्वर को पहले ऑथेंटिकेटेड एंडपॉइंट्स पर सार्वजनिक HTTP को अक्षम करना चाहिए। यदि कोई शेयर्ड होस्ट इसे तुरंत नहीं कर सकता है, तो गेटवे प्रत्येक क्रेडेंशियल-युक्त HTTP अनुरोध के लिए समान 403 लौटाता है, क्रेडेंशियल की वैधता प्रकट नहीं करता है, और क्रेडेंशियल को संभावित रूप से उजागर के रूप में चिह्नित करता है। रिप्ले करने योग्य टोकन, API कीज़ और कुकीज़ को रिवोक और रोटेट किया जाता है। SDKs, CLIs और कॉन्फ़िगरेशन जांच डिफ़ॉल्ट रूप से http को अस्वीकार करते हैं; HTTPS DNS रिकॉर्ड्स और HSTS पहले उपयोग और बार-बार होने वाली गलतियों को कम करते हैं, और कुकीज़ Secure ले जाती हैं।
परीक्षण परिवेशों, नए टेनेंट्स और लीगेसी टेनेंट्स में चरणों में माइग्रेट करें। एंटरप्राइज प्रॉक्सीज़ को एक छोटा ट्रांज़िशन पथ दें जो कोई क्रेडेंशियल स्वीकार नहीं करता है। पैकेट कैप्चर के साथ सत्यापित करें और प्लेनटेक्स्ट अनुरोधों, क्रेडेंशियल-युक्त प्लेनटेक्स्ट अनुरोधों, रिवोकेशन और रोटेशन पूर्णता, 403 फाल्स पॉजिटिव और लीगेसी-क्लाइंट शेयर को मापें। IETF दस्तावेज़ अभी भी एक ड्राफ्ट है, इसलिए परिनियोजन प्रतिबद्धताएं समायोज्य बनी हुई हैं।
सामान्य गलतियाँ
- यह मान लेना कि एक HTTPS रीडायरेक्ट पहले ही भेजे जा चुके Authorization हेडर या कुकी की रक्षा करता है।
- पहले उपयोग, लीगेसी क्लाइंट्स और गैर-ब्राउज़र SDKs की अनदेखी करते हुए केवल HSTS को कॉन्फ़िगर करना।
- मान्य और अमान्य क्रेडेंशियल्स के लिए अलग-अलग प्लेनटेक्स्ट प्रतिक्रियाएं लौटाना।
- प्रत्येक क्रेडेंशियल को समान मानना और रिप्ले करने योग्य टोकन बनाम व्युत्पन्न हस्ताक्षरों की अनदेखी करना।
- माइग्रेशन, मॉनिटरिंग, रिवोकेशन या रोलबैक योजना के बिना HTTP को हटाना।
अनुवर्ती प्रश्न और उत्तर
क्या होगा यदि HTTP एंट्री पॉइंट अभी भी सार्वजनिक संसाधनों को सर्व करता है?
ऑथेंटिकेटेड API को एक अलग होस्टनेम पर ले जाएं, या गेटवे पर पाथ और क्रेडेंशियल हेडर को अलग करें। सार्वजनिक संसाधनों की अपनी रीडायरेक्ट नीति हो सकती है; ऑथेंटिकेटेड एंडपॉइंट्स को क्रेडेंशियल-युक्त प्लेनटेक्स्ट अनुरोधों को अस्वीकार करना होगा।
क्या HSTS पहली विज़िट की समस्या को हल करता है?
पूरी तरह से नहीं। HSTS को एक सफल HTTPS कनेक्शन और क्लाइंट पर्सिस्टेंस की आवश्यकता होती है। SDKs, कॉन्फ़िगरेशन जांच, HTTPS DNS रिकॉर्ड्स और परिनियोजन जांच को पहले कनेक्शन को भी कवर करना चाहिए।
क्रेडेंशियल्स को कब रिवोक किया जाना चाहिए?
प्लेनटेक्स्ट में देखे गए क्रेडेंशियल्स को संभावित रूप से उजागर मानें। रिप्ले करने योग्य टोकन, API कीज़ और कुकीज़ को रिवोक और रोटेट करें। गैर-जाली व्युत्पन्न हस्ताक्षर के लिए, थ्रेट मॉडल से तय करें कि क्या रिवोकेशन आवश्यक है।
आप एक विघटनकारी माइग्रेशन से कैसे बचते हैं?
पहले परीक्षणों और नए टेनेंट्स में रिजेक्शन सक्षम करें, लीगेसी क्लाइंट्स और 403 फाल्स पॉजिटिव का निरीक्षण करें, फिर बैचों में माइग्रेट करें। एक छोटा ट्रांज़िशन एंडपॉइंट रखें जो कोई क्रेडेंशियल स्वीकार नहीं करता है और एक स्पष्ट समय सीमा के बाद इसे हटा दें।