2009-09-25 3 views
9

मैं सोच रहा था कि क्या वहाँ एक सत्र और एक एन्क्रिप्टेड कुकी के बीच कोई अंतर है (के रूप में सत्र कुकी करता है की समय सीमा समाप्त करने के लिए कॉन्फ़िगर)।अंतर

क्या वे एक ही चीज़ नहीं हैं? या रेल सत्रों के लिए अतिरिक्त सुरक्षा प्रदान करता है?

उत्तर

19

एक सत्र एक कुकी की तुलना में एक उच्च स्तरीय चीज़ है। सत्र चर के संग्रह होते हैं जो केवल एक उपयोगकर्ता सत्र के लिए बने रहते हैं। सत्र को कुकी में, किसी डेटाबेस में संग्रहीत किया जा सकता है, या जहां भी सत्र-हैंडलिंग प्लगइन उन्हें स्टोर करने का विकल्प चुनता है। कुकीज़ अब डिफ़ॉल्ट स्थान हैं जहां सत्र रेल के आधुनिक संस्करणों में संग्रहीत हैं। नोट: कुकी के बाहर सत्र संग्रहीत किए जाने पर, कुकी में संग्रहीत एक आईडी होती है, इसलिए रेल भी जहां भी संग्रहीत होता है, सत्र सत्र को देख सकता है (उदा। डेटाबेस)।

अब, मुझे क्या मुझे लगता है कि आप पूछ होना चाहता हूँ पर चलते हैं: क्या रेल 'डिफ़ॉल्ट सत्र-भंडारण के बीच का अंतर (जो एक गैर-एन्क्रिप्टेड कुकी का उपयोग करता है) और Phusion's EncryptedCookieStore या किसी अन्य एन्क्रिप्टेड-कुकी सत्र भंडारण कार्यान्वयन है ? सत्र कुकी को एन्क्रिप्ट करने के बारे में आप परवाह क्यों करते हैं?

http://agilewebdevelopment.com/plugins/encrypted_cookie_store के अनुसार, यहां अंतर की जड़ है: "EncryptedCookieStore रेल के CookieStore पर रूबी के समान है (यह एक कुकी में सत्र डेटा की बचत होती है), लेकिन यह एन्क्रिप्शन का उपयोग करता है ताकि लोग क्या सत्र में है नहीं पढ़ सकते हैं डेटा। यह सत्र में संवेदनशील डेटा स्टोर करना संभव बनाता है। "।

ध्यान दें कि कई अलग-अलग एन्क्रिप्टेड कूकीस्टोर हैं। AFAIK, आप Phusion's EncryptedCookieStore का उपयोग करना चाहते हैं और ThinkRelevance की पुरानी एन्क्रिप्टेडकुकीस्टोर नहीं।

यदि आप कुकीज एन्क्रिप्ट नहीं कर रहे हैं, तो कुकी डेटा तक पहुंचने वाले किसी भी व्यक्ति द्वारा सत्र डेटा आसानी से पठनीय है (या तो नेटवर्क स्निफर, क्लाइंट के लिए डिस्क एक्सेस, एक्सएसएस, इत्यादि के माध्यम से) सत्र वर्र्स कैसे संग्रहीत किए जाते हैं कुकीज़ में (सुरक्षा प्रभाव के साथ), यहां देखें: http://www.neeraj.name/2009/05/04/how-cookie-stores-session-data-in-rails.html

ध्यान दें कि डिफ़ॉल्ट (गैर-एन्क्रिप्टेड) ​​कुकी स्टोरेज छेड़छाड़ प्रतिरोधी है (जिसका अर्थ है कि रेल दुर्भावनापूर्ण रूप से परिवर्तित कुकी को अस्वीकार कर देगा)। इसलिए यदि आप चिंतित हैं तो लोगों को आपकी कुकीज़ बदलने से रोक रहा है (लेकिन यदि वे आपकी कुकीज़ देखते हैं तो परवाह नहीं है) तो आप डिफ़ॉल्ट के साथ ठीक हैं।

+1

यह कैसे छेड़छाड़ कर रहा है? – dangerousdave

+3

रेल एक एचएमएसी (http://en.wikipedia.org/wiki/HMAC) का उपयोग यह गारंटी देने के लिए करते हैं कि किसी ने कुकी को संशोधित नहीं किया है कि रेल ने इसे कैसे संग्रहीत किया है। –