2011-12-03 16 views
5

मैं django ऐप्स (https://bitbucket.org/yilmazhuseyin/django-sslredirector) के लिए एक एसएसएल रीडायरेक्शन उपयोगिता लिखने की कोशिश कर रहा हूं। मेरी समस्या यह है कि जब मैं http से https तक पृष्ठों को रीडायरेक्ट करता हूं, तो मुझे समझ में नहीं आ रहा है कि मैं सुरक्षित कनेक्शन पर हूं (जब मैं request.is_secure को कॉल करता हूं तो यह गलत होता है)। मुझे लगता है कि इसके लिए एक हैक है, किसी भी तरह से वेबफैक्शन कहा जाता है कि मैं वास्तव में यह नहीं समझ सकता कि यह कैसे काम करता है। यहाँ webfaction मामले के लिए is_secure विधि हैDjango request.is_secure रीडायरेक्ट विधियों के लिए गलत मान देता है

def _is_secure(self, request): 
     if request.is_secure(): 
     return True 

     #Handle the Webfaction case until this gets resolved in the request.is_secure() 
     if 'HTTP_X_FORWARDED_SSL' in request.META: 
     return request.META['HTTP_X_FORWARDED_SSL'] == 'on' 

मेरे समस्या है जब मैं http से https के लिए अपने पृष्ठों, रीडायरेक्ट कर request.is_secure पद्धति अभी भी झूठी (घटना हालांकि मैं https पर कर रहा हूँ) वापस आती है और मैं लगातार करने के लिए अपने पृष्ठों अनुप्रेषित https। क्या यह समझने का कोई तरीका है कि क्या मुझे अभी https से रीडायरेक्ट किया गया है?

सबसे अच्छा स्रोत मैं मिल सकता है इस http://djangosnippets.org/snippets/880/ है और इसके लिए मुझे

उत्तर

5

काम नहीं कर रहा अपने यातायात प्रॉक्सी के कुछ प्रकार के माध्यम से जा रहा है, तो यह संभव है कि तथ्य यह है कि आप SSL का उपयोग कर रहे छिपा दिया जाएगा। हालांकि, प्रॉक्सी आमतौर पर किसी प्रकार का HTTP शीर्षलेख सेट करेगा (या आप इसे ऐसा करने के लिए कॉन्फ़िगर कर सकते हैं)। एक विकल्प HTTP_X_FORWARDED_SSL है। यदि आप https का उपयोग कर रहे हैं तो Heroku HTTP_X_FORWARDED_PROTO को https पर सेट करता है।

+0

मैं पुष्टि कर सकता हूं कि यह उसकेोकू का समाधान है –

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