सवाल क्या आप URL पैरामीटर में HTTP मूल प्रमाणीकरण के लिए उपयोगकर्ता / पास पास कर सकते हैं?


मेरा मानना ​​है कि यह संभव नहीं है, लेकिन मुझे पता है कि कोई भी यह काम करता है कि यह काम करता है। मैं यह भी नहीं जानता कि कौन से पैरामीटर आज़माएं, और मुझे यह कहीं भी दस्तावेज नहीं मिला है।

मैंने कोशिश की http://myserver.com/~user=username&password=mypassword लेकिन यह काम नहीं करता है।

क्या आप पुष्टि कर सकते हैं कि HTTP पैरामीटर (जीईटी या पोस्ट) के माध्यम से उपयोगकर्ता / पास पास करना संभव नहीं है?


124
2018-03-21 11:16


मूल


उपयोगकर्ता: pass@example.com - Smudge
@ सैम - क्या? पूरा यूआरएल कैसा दिखता है? - ripper234
सभी कल्पना में ietf.org/rfc/rfc1738.txt (3.1) - Smudge
@sam - क्षमा करें, मैं किसी कारण से आपकी टिप्पणी का विश्लेषण करने में असफल रहा। - ripper234


जवाब:


मानक HTTP ऑथ में क्वेरी पैरामीटर के माध्यम से उपयोगकर्ता नाम और पासवर्ड को पार करना संभव नहीं है। इसके बजाए, आप एक विशेष यूआरएल प्रारूप का उपयोग करते हैं, जैसे: http://username:password@example.com/ - यह मानक HTTP "प्रमाणीकरण" शीर्षलेख में प्रमाण-पत्र भेजता है।

यह संभव है कि जो भी आप बात कर रहे थे वह एक कस्टम मॉड्यूल या कोड के बारे में सोच रहा था जो क्वेरी पैरामीटर को देखता था और प्रमाण-पत्र सत्यापित करता था। यह मानक HTTP ऑथ नहीं है, हालांकि, यह एक एप्लिकेशन-विशिष्ट चीज है।


167
2018-03-21 11:38



धन्यवाद, यह वही है जो मैं ढूंढ रहा था ... यह महत्वपूर्ण नहीं है कि यह पैरामीटर प्राप्त करें, बस मैं इसे यूआरएल में तैयार कर सकता हूं। - ripper234
एफवाईआई, द http://username:password@example.com प्रारूप अब या तो समर्थित नहीं है अर्थात या क्रोम, अगर दूसरों ने पहले से नहीं किया है तो वे आश्चर्यचकित नहीं होंगे। - T.J. Crowder
वास्तव में क्रोम में ठीक काम करता है। केवल आईई एक खराब ब्रैट है। - Damien Overeem ツ
@DamienOvereem क्रोम के किस संस्करण पर आप? मैं मैक ओएस एक्स 37 पर हूं और यह मेरे लिए काम नहीं कर रहा है - Chris DaMour
मैंने तब से सीखा है कि क्रोम ने इसे एक समय के लिए अक्षम कर दिया था, लेकिन बाद में इस सुविधा को फिर से सक्षम किया। मैंने यह भी सीखा है कि सफारी इन प्रकार के लिंक में चलते समय फ़िशिंग त्रुटियों को फेंक देगा .. असल में यूआरएल-आधारित http प्रमाणीकरण का समय खत्म हो गया है .. - Damien Overeem ツ


http: // उपयोगकर्ता नाम: password@example.com फ़ायरफ़ॉक्स, क्रोम, सफारी के लिए काम करेगा लेकिन आईई के लिए नहीं।

माइक्रोसॉफ्ट नॉलेज बेस


16
2018-01-23 10:50



यह क्षमता क्रोम 1 9 + से हटा दी गई थी। देख code.google.com/p/chromium/issues/detail?id=123150 - Moshe Katz
उस बग रिपोर्ट को पढ़ने के बाद, इसे क्रोम 20 में वापस जोड़ा गया। निश्चित रूप से, मैं इसके बारे में बहुत शिकायत करने की उम्मीद करता हूं अगर यह नहीं होता था। - womble♦
अब मैंने इंटरनेट एक्सप्लोरर के लिए अनुरोध किया है: connect.microsoft.com/IE/feedback/details/873575/...। थोड़ा अलग उपयोग-मामला, लेकिन एक ही मुद्दे को संबोधित करता है;) - SimonSimCity
@Diago अगर पासवर्ड में '@' है तो यह काम नहीं करता है। यह घातक त्रुटि देता है, क्या कोई मुझे बता सकता है कि हम एक बार उपयोगकर्ता नाम और पासवर्ड कैसे दे सकते हैं - Ashish Jain
@ आशीषजैन - मैं भागने की कोशिश करता हूं @ के रूप में पासवर्ड में %40। (मुझे नहीं पता कि यह काम करता है, हालांकि, और यह सर्वर या ब्राउज़र / सर्वर संयोजन पर निर्भर हो सकता है।) - David Moles


URL में मूल प्रमाणीकरण मानकों को पास करने की अनुशंसा नहीं की जाती है

इस उद्देश्य के लिए एक प्राधिकरण शीर्षलेख फ़ील्ड यहां जांचें: http शीर्षलेख सूची

इसका उपयोग कैसे करें यहां लिखा गया है: मूल पहुंच प्रमाणीकरण

वहां आप यह भी पढ़ सकते हैं कि यद्यपि यह अभी भी कुछ ब्राउज़रों द्वारा समर्थित है हालांकि यूआरएल में मूल प्रमाणीकरण प्रमाण-पत्र जोड़ने का सुझाया गया समाधान अनुशंसित नहीं है।

यह भी पढ़ें आरएफसी 2617 में अध्याय 4.1 - HTTP प्रमाणीकरण मूल प्रमाणीकरण का उपयोग न करने के बारे में अधिक जानकारी के लिए।


क्वेरी स्ट्रिंग में प्रमाणीकरण पैरामीटर पास करना

OAuth या अन्य प्रमाणीकरण सेवाओं का उपयोग करते समय आप अक्सर प्राधिकरण शीर्षलेख की बजाय क्वेरी स्ट्रिंग में अपना एक्सेस टोकन भी भेज सकते हैं, इसलिए कुछ ऐसा है:

GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD

14
2017-09-24 07:55



और एक यूआरएल में प्राधिकरण शीर्षलेख एन्कोड करने के बारे में कैसे जाता है? - womble♦
क्या यह नहीं है कि आपने जो फॉर्म कहा था वह अब हटा दिया गया था? - womble♦
आपके द्वारा उत्तर दिया गया प्रश्न "इस उद्देश्य के लिए एक प्राधिकरण शीर्षलेख फ़ील्ड है" पूछ रहा था कि प्रमाणीकरण पैरामीटर कैसे डालें यूआरएल में। यदि आप HTTP शीर्षलेख फ़ील्ड को एक यूआरएल (जिसे आप नहीं कर सकते) में एन्कोड नहीं कर सकते हैं, तो आपका उत्तर एक गैर अनुक्रमक है। - womble♦
क्या आप बता सकते हैं कि यूआरआई मानक में कहां है कि यूआरआई में बुनियादी प्रमाणीकरण मानकों को पारित किया गया है? आरएफसी 23 9 6 केवल इतना कहता है कि इसे "अनुशंसित नहीं किया गया है" क्योंकि सादे पाठ में प्रमाणीकरण विवरण कई परिस्थितियों में, एक अच्छा विचार नहीं है (जिसमें से मैं सहमत हूं), जबकि आरएफसी 7235 में कुछ भी नहीं है। चश्मा में कहीं भी मैं खोज सकता हूं कहता है कि यह बहिष्कृत है। - Lie Ryan
@ विल्ट: मुझे माफी माँगनी है, आप वास्तव में सही हैं। आपका संकेत है कि कल्पना "बदली गई" ने मुझे आगे की जांच करने के लिए प्रेरित किया (एक आरएफसी कभी प्रकाशित / क्रमांकित होने पर संशोधित नहीं होता है)। मैंने अभी पाया है कि आरएफसी 23 9 6 को वास्तव में हटा दिया गया है आरएफसी 3 9 86, जिसे मैं पहले नहीं ढूंढ पाया था। आरएफसी 3 9 86 उपयोगकर्ता नाम के बहिष्कार का उल्लेख करता है: पासवर्ड वाक्यविन्यास: Use of the format "user:password" in the userinfo field is deprecated. - Lie Ryan


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

हालांकि, आपको लॉग इन और पासवर्ड निकालने के लिए सर्वर पेज को कोड करने की आवश्यकता होगी और फिर सत्यापित करें और जिस तरह से आवश्यक हो, उनका उपयोग करें।


0
2017-09-11 08:22