2009-09-26 21 views
5

urllib2 सामान्य रूप से प्रॉक्सी प्रमाणीकरण के साथ HTTPS का समर्थन नहीं करता है, एनटीएलएम प्रमाणीकरण के साथ भी कम। कोई भी जानता है कि NTLM प्रमाणीकरण के साथ प्रॉक्सी पर HTTPS के लिए कहीं पैच है या नहीं।पायथन urllib2 HTTPS और प्रॉक्सी एनटीएलएम प्रमाणीकरण

सादर,

लॉरेंट

+0

FYI करें अब के लिए भी [अजगर-ntlm] (http://code.google.com/p/python-ntlm/) है 'urllib2' –

उत्तर

5

देर उत्तर। Urllib2 एनटीएलएम प्रॉक्सीइंग का समर्थन नहीं करता है लेकिन pycurl करता है। अंश:

self._connection = pycurl.Curl() 
self._connection.setopt(pycurl.PROXY, PROXY_HOST) 
self._connection.setopt(pycurl.PROXYPORT, PROXY_PORT) 
self._connection.setopt(pycurl.PROXYUSERPWD, 
         "%s:%s" % (PROXY_USER, PROXY_PASS)) 
... 
2

http://code.google.com/p/python-ntlm/

मैं कभी नहीं HTTPS के साथ की कोशिश की लेकिन मुझे लगता है कि यह काम करना चाहिए।

संपादित करें: यदि आप एसएसएल टनलिंग का उपयोग कर रहे हैं, प्रॉक्सी प्रमाणीकरण एक बुरा विचार है।

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

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

यदि यह एक एंटरप्राइज़ प्रॉक्सी है, तो आईपी एसीएल एकमात्र सुरक्षित समाधान है।

+0

HTTPS प्रॉक्सी प्रमाणीकरण का उपयोग के साथ काम नहीं करता है urllib2 में क्योंकि ऐसा लगता है कि कनेक्ट अनुरोध प्रमाण-पत्र पास नहीं करता है। मैं उम्मीद कर रहा था कि एनटीएलएम का उपयोग कर प्रॉक्सी के साथ किसी के पास एचटीटीपीएस के लिए पैच था। –

+0

आप एचटीटीपीएस सुरंग (प्रॉक्सी कनेक्ट) के बारे में बात कर रहे हैं। प्रमाण पत्र पारित करना असंभव है। प्रॉक्सी केवल गंतव्य होस्ट/पोर्ट हो जाता है और बाकी सब कुछ एन्क्रिप्ट किया जाता है। एक सुरंग पर लगाए जा सकने वाली एकमात्र सुरक्षा आईपी आधारित एसीएल है। –

+0

प्रमाणीकरण (उदाहरण के लिए मूल प्रमाणीकरण) के साथ प्रॉक्सी के मामले में, आपको कनेक्ट कमांड में क्रेडेंशियल पास करने की आवश्यकता है: "प्रॉक्सी-प्रमाणीकरण: उपयोगकर्ता नाम/पासवर्ड हैश" यह एक सुरंग है लेकिन आपको अभी भी प्रॉक्सी के साथ प्रमाणित करने की आवश्यकता है । –

1

अच्छी नुस्खा (एचटीटीपीएस डब्ल्यू/प्रॉक्सी के लिए) और चर्चा here पर चर्चा करना संभव है, इसे पाइथन-एनएलटीएम कोड @ZZ के साथ पहले से ही सुझाव दिया जाना चाहिए।

+0

वह नुस्खा प्रॉक्सी के मामले में कोई प्रमाणीकरण के साथ अच्छी तरह से काम करता है। यह बुनियादी, पाचन या एनटीएलएम प्रमाणीकरण के मामले में काम नहीं करता है। हमारे पास यह मूल प्रमाणीकरण के लिए काम कर रहा है लेकिन हम एनटीएलएम प्रमाणीकरण के मामले में कुछ मदद की तलाश में हैं। –

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