मैं अपने रेल क्षुधा पर प्रमाणीकरण को संभालने के लिए थोड़ी देर के लिए वसीयत का उपयोग किया गया है, लेकिन वास्तव में कभी नहीं समझ में आ यह कैसे काम करता है। चूंकि डेविस रेल पर सेट सत्र स्टोरेज कॉन्फ़िगरेशन का भी उपयोग करता है, मुझे लगता है कि यह रेल के साथ सत्र हैंडलिंग पर एक प्रश्न है।सत्रों और कुकीज़ रेल में कैसे काम करते हैं?
असल में, मैं एक नौसिखिया नौसिखिया हूं। मैंने प्रमाणीकरण के बारे में कुछ लेख पढ़े हैं लेकिन सारणीबद्ध पुस्तकालयों के साथ सबसे अधिक सौदा (वे इंजन, मध्यम बर्तन, आदि के बारे में बात करते हैं) जो मुझे ज्यादा समझ में नहीं आता है। मैं वास्तव में निम्न स्तर के विवरण की तलाश में हूं।
यहाँ मैं अब तक क्या पता है ..
मैं कुकीज़ और सत्र के बारे में पता है। कुकीज क्लाइंट-साइड पर स्ट्रिंग्स हैं जो एकाधिक HTTP अनुरोधों में सत्र बनाए रखने के लिए उपयोग की जाती हैं।
यहाँ प्रमाणीकरण के अपने बुनियादी समझ है (कृपया मुझे ठीक कर लें मैं गलत हूँ):
जब उपयोगकर्ता लॉग करता है, हम सर्वर से एसएसएल एन्क्रिप्टेड अनुरोध भेजें। यदि प्रमाण-पत्र मान्य हैं, तो हम उपयोगकर्ता आईडी से जुड़े मान्य सत्र आईडी के रूप में डेटाबेस (या किसी अन्य डेटा स्टोर) पर सत्र आईडी नामक यादृच्छिक स्ट्रिंग को सहेजते हैं। यह सत्र आईडी उपयोगकर्ता के प्रत्येक लॉगिन/लॉगआउट के लिए बदलती है।
हमारे डेटा स्टोर पर उस सत्र आईडी को सहेजने के बाद, हम एक प्रतिक्रिया वापस भेजते हैं जो ब्राउज़र को सत्र आईडी के साथ कुकी सेट करने के लिए कहता है। उपयोगकर्ता आईडी के साथ यह सत्र आईडी तब डोमेन तक लगातार अनुरोध के लिए भेजी जाएगी जब तक कि यह समाप्त न हो जाए। प्रत्येक अनुरोध के लिए, हमारा सर्वर हेडर पर सत्र आईडी की जांच करेगा और सत्यापित करेगा कि वह सत्र आईडी उस उपयोगकर्ता आईडी के लिए मान्य है या नहीं। यदि ऐसा है, तो उस उपयोगकर्ता को प्रमाणित मानें।
यहाँ मेरी प्रश्न हैं:
मुझे लगता है कि डिफ़ॉल्ट रूप से रेल 2 से शुरू पढ़ा है, यह अब CookieStore (SessionStore के बजाय) जो SHA512 साथ सत्र हैश उत्पन्न (बजाय का उपयोग करता है सत्र आईडी के), और यह सब एक कुकी पर संग्रहीत किया जाता है जिसका अर्थ है कि एकाधिक उपयोगकर्ता आईडी का सचमुच एक ही सत्र हैश हो सकता है और यह ठीक काम करेगा। ऐसा लगता है कि यह एक बहुत ही खतरनाक चीज है, सर्वर पर संग्रहीत एक गुप्त कुंजी के साथ बड़ी संख्या में हैश का पर्दाफाश करना और इस कुंजी के आधार पर अपनी संपूर्ण प्रमाणीकरण प्रणाली को आधार देना। क्या कोई वास्तविक दुनिया बड़े पैमाने पर एप्लिकेशन है जो सर्वर साइड सत्र आईडी को संग्रहीत करने के बजाय हैशिंग का उपयोग करता है?
सर्वर के पक्ष में सक्रिय सत्र आईडी को संग्रहीत करने के विषय पर, मैंने यह भी पढ़ा है कि आप रेल के लिए विभिन्न प्रकार के सत्र संग्रहण का उपयोग करने के लिए स्विच कर सकते हैं। इस पर आधारित, मैंने सिस्टम के रूप में प्रमाणीकरण सिस्टम को सिस्टम के रूप में और ऑथ टोकन का उपयोग करने के बारे में सुना है। एक लेख टोकन क्या है और यह सत्र आईडी से अलग कैसे है?
ऐसा लगता है कि मैं मौजूदा सत्र को पकड़ने के लिए एक यादृच्छिक स्ट्रिंग (दोनों हैशिंग और सर्वर साइड सत्रों के लिए) अनुमान लगा सकता हूं। क्या इसके खिलाफ सुरक्षा करने का कोई तरीका है? क्या कुकी पर संग्रहीत अधिक मूल्यों का उपयोग करना सामान्य है?
मैं जानता हूँ कि मैं एक बहुत पूछ रहा हूँ, लेकिन मेरा मानना है कि यह मेरे जैसे लोग हैं, जो प्रमाणीकरण समझ में नहीं आता है और बहुत हो जाएगा के लिए उपयोगी हो सकता है (जैसे उपयोगकर्ता नाम, असली नाम या प्रमाणीकरण के लिए भी एक और हैश के रूप में) विषय के बारे में एक ठोस नींव पाने के लिए उपयोगी है।
यह एक बहुत अच्छा सवाल है, और डेविस की अस्पष्टता लंबे समय से हमारी कंपनी में गोद लेने के लिए बाधा रही है। इस बारीकी से पालन करेंगे। – Drenmi
जेनरेट किया गया हैश केवल उपयोगकर्ता के विशेषताओं पर लॉग इन नहीं है। i.ei. आप एक डुप्लिकेट SHA1 हैश उत्पन्न नहीं कर सका। –