2014-12-19 6 views
6

पर पुनर्निर्देशन मैं एम्बर-सरल-ऑथ के साथ एम्बर प्रारंभकर्ता का उपयोग करके HTTP से HTTPS पर पुनर्निर्देशित करने के तरीकों पर कुछ अनुशंसाएं प्राप्त करने की उम्मीद कर रहा था।HTTP से HTTPS w/सरल Auth

`import ENV from 'cio/config/environment'` 

SSLInitializer = 
    name: 'ssl' 
    before: 'simple-auth-cookie-store' 
    initialize: (container, application) -> 
    application.deferReadiness() 

    # Redirect if hitting HTTP and SSL is enabled 
    if ENV.SSL and window.location.protocol is "http:" 
     window.location.href = "https:" + window.location.href.substring(window.location.protocol.length) 
     return false 

    application.advanceReadiness() 

`export default SSLInitializer` 

लेकिन ऐसा लगता है कि यदि कथन कथन सत्य का मूल्यांकन करता है तब भी कुकी को अमान्य कर दिया जाता है। मैं सहित कई चीज़ें की कोशिश की है:

  • से पहले: 'सरल लेखन'
  • से पहले
  • : अगर बयान के भीतर 'दुकान'
  • application.destroy(), window.location.href से पहले

डीबगिंग के बाद, मैं जो कह सकता हूं उससे सेट है। ऐप HTTPS पर रीडायरेक्ट करता है, लेकिन तब cookName document.cookie में नहीं मिलता है। (https://github.com/simplabs/ember-simple-auth/blob/master/packages/ember-simple-auth-cookie-store/lib/simple-auth-cookie-store/stores/cookie.js#L154)

इस विधि से पहले काम किया क्योंकि हमारे पास index.html में सरल स्निपेट था, लेकिन डब्ल्यू/सीएसपी हम इसे प्रारंभकर्ता में रखना चाहते हैं। कोई सिफारिशें?

धन्यवाद!

+0

आप इसे प्रारंभकर्ता में क्यों करना चाहते हैं, सर्वर से नहीं? पता नहीं है कि आप एक लेखक का उपयोग करते हैं, लेकिन यदि आप सर्वर को किसी भी गैर-HTTPS अनुरोधों का जवाब नहीं देना चाहिए। – marcoow

+0

सभी संपत्तियों को विभिन्न प्रकार की एडब्ल्यूएस सेवाओं (एस 3, रूट 53, आदि ...) के साथ सीडीएन में परोसा जाता है, इसलिए हमारे पास वास्तव में एक nginx या apache कॉन्फ़िगरेशन नहीं है जिसका हम उपयोग कर सकते हैं। – alvincrespo

+0

हाँ यूआई सिर्फ एक एपीआई के साथ संवाद करता है ताकि फ्रंटेंड संपत्तियों की मेजबानी सिर्फ सीडीएन के माध्यम से की जा सके। – alvincrespo

उत्तर

4

आपको वास्तव में सर्वर से HTTP से HTTPS तक रीडायरेक्ट को मजबूर करना चाहिए क्योंकि क्लाइंट से ऐसा करने से कोई वास्तविक सुरक्षा नहीं मिलती है।

इसके बारे में सोचें, उपयोगकर्ता ने अपने ब्राउज़र पर एक असुरक्षित अंतराल से एप्लिकेशन डाउनलोड किया है और तब से कुछ भी भरोसा नहीं किया जा सकता है। यहां तक ​​कि एक सर्वर आधारित रीडायरेक्ट समस्याग्रस्त है क्योंकि यह अविश्वसनीय एंडपॉइंट से रीडायरेक्ट सलाह पर निर्भर करता है। उपयोगकर्ताओं को वास्तव में प्रारंभिक भरोसेमंद प्रारंभ बिंदु से चीजों तक पहुंचना चाहिए अन्यथा सभी दांव बंद हैं। इसे सुरक्षित रेफ़रल समस्या के रूप में जाना जाता है और SSL प्रमाणपत्रों के पीछे व्यावसायिक मॉडल की वजह से कभी हल नहीं किया जाएगा।

आपको भरोसेमंद HTTPS डोमेन में अविश्वसनीय HTTP डोमेन से कुकीज़ पर भरोसा नहीं करना चाहिए जब तक कि आपके पास क्लाइंट पर उन कुकीज़ को प्रमाणीकृत करने का कोई तरीका न हो। HTTP/HTTPS के बीच कुकीज़ साझा करना RFC 2109 (अनुभाग 4.2.2 सेट-कुकी सिंटेक्स) में शामिल है।

इसका मतलब यह है:

  • साथ एक कुकी सेट "सुरक्षित" केवल HTTPS पर उपलब्ध हो जाएगा
  • बिना "सुरक्षित" पर या तो HTTP या HTTPS उपलब्ध हो जाएगा एक कुकी सेट।
संबंधित मुद्दे