2011-10-20 23 views
5

क्या कोई बता सकता है कि http://user:[email protected] प्रमाणीकरण कैसे काम करता है? क्या ब्राउजर Authorization हेडर user:pass बेस -64 एन्कोडेड के साथ भेजता है?http: // user: [email protected] प्रमाणीकरण कैसे काम करता है?

मैंने क्रोम डेवलपर टूल में नेट कंसोल खोला और जब मैं http://user:[email protected] जैसे अनुरोध करता हूं तो मुझे Authorization हेडर जोड़ा नहीं जाता है।

मैं वास्तव में उत्सुक हूं कि अगर मैं यूआरएल के सामने user:[email protected] का उपयोग करता हूं तो ब्राउजर पासवर्ड कैसे भेजता है।

+3

यह केवल प्राधिकरण शीर्षलेख है। मुझे नहीं पता कि क्रोम यह कैसे करता है, लेकिन फ़ायरफ़ॉक्स के साथ यह जांचता है कि साइट प्रमाणीकरण के लिए पूछ रही है (अनुरोध में) और यदि यह नहीं है, तो आपको चेतावनी दी जाती है कि 'आप साइट पर लॉग इन करने वाले हैं "stackoverflow। कॉम "उपयोगकर्ता नाम" उपयोगकर्ता "के साथ, लेकिन वेबसाइट प्रमाणीकरण की आवश्यकता नहीं है। यह आपको चाल करने का प्रयास हो सकता है। क्या आप जिस साइट पर जाना चाहते हैं, वह "stackoverflow.com" है? और फिर यह या तो [हां] लेख विवरण में कटौती करता है या [नहीं] अनुरोध बंद कर देता है। तो जब तक आपके पास प्राधिकरण के साथ कोई साइट आसान न हो, तब तक आप हेडर नहीं देख पाएंगे। –

उत्तर

3

हेडर का निरीक्षण करने के लिए, आपको उस सर्वर के विरुद्ध परीक्षण करने की आवश्यकता है जिसके लिए प्रमाणीकरण की आवश्यकता है। ग्राहक तब तक Authorization हेडर नहीं भेजेगा जब तक कि सर्वर इसके लिए नहीं पूछता क्योंकि क्लाइंट को यह नहीं पता होगा कि सर्वर को प्रमाणीकरण विधि (मूल या पाचन) की आवश्यकता है।


HTTP प्रमाणीकरण दो अनुरोध में किया जाता है:

पहले, किसी भी Authorization हेडर के बिना एक अनुरोध भेजा है। सर्वर तब WWW-Authenticate के साथ प्रतिक्रिया देता है जो क्लाइंट को प्रमाणीकृत करने के बारे में बताता है। इसमें एक वास्तविक नाम और प्रमाणीकरण विधि शामिल है (फिर से, यह या तो मूल या पाचन है)

क्लाइंट अतिरिक्त Authorization शीर्षलेख के साथ एक नया अनुरोध भेजता है। basic authentication के मामले में, इस हेडर, बस user:pass इनकोडिंग base64 है बस के रूप में आप कह रहे हैं:

Authorization: Basic dXNlcjpwYXNz 

अब पासवर्ड जब तक आप https का उपयोग कर रहे हैं, पारगमन में दिख रहा है। एक बेहतर विकल्प digest authentication है, जहां WWW-Authenticate और Authorization दोनों की सामग्री wikipedia article द्वारा सर्वोत्तम रूप से समझाया गया है। :)