तो यह मूल रूप से एक आश्वासन है कि मैं पूरी पंजीकरण/लॉगिन प्रक्रिया को जहां तक हैशिंग/नमकीन चला रहा हूं।हैशिंग और सल्टिंग - लॉगिन w/कुकीज़ को मान्य करना
मेरे पास फ़ील्ड पासवर्ड, नमक, टोकन के साथ एक उपयोगकर्ता तालिका है (जाहिर है अन्य हैं लेकिन यह सबसे महत्वपूर्ण है)। पंजीकरण कराने पर यह एक यादृच्छिक नमक, और एक यादृच्छिक टोकन बनाएं, और यह पासवर्ड फ़ील्ड इस में कहते हैं:
hash("sha256", $theirpostpassword.$randomgeneratedsalt);
यादृच्छिक उत्पन्न नमक और टोकन में उन तालिका में पंक्ति है कि अपने संबंधित क्षेत्रों में जमा हो जाती है यही कारण है कि।
तो लॉगिन पर मैं उपयोगकर्ता नाम से नमक का चयन केवल उनके द्वारा निर्दिष्ट उपयोगकर्ता नाम से करता हूं। मैं फिर एक गिनती पूछता हूं कि कितने पंक्तियों में उनके पोस्ट नमक को उनके विशिष्ट नमक के साथ संयोजित किया गया है, और फिर मैं उन्हें लॉग इन करता हूं। बहुत यकीन है कि मेरे पास वह हिस्सा है।
अब मैं प्रत्येक पृष्ठ पर उनके लॉगिन को सत्यापित करने के बारे में सोच रहा था, मेरे पास प्रत्येक पृष्ठ पर एक फ़ंक्शन चलाया जाएगा जो यह देखने के लिए उनकी कुकी जांचता है कि आईडी-उपयोगकर्ता नाम-टोकन डेटाबेस में पंक्ति से मेल खाता है या नहीं। मतलब यह है कि प्रत्येक लॉगिन यह उन क्रेडेंशियल्स के साथ अपनी कुकी सेट करता है।
अब केवल एक चीज जिसे मैं बेहतर बनाने के बारे में सोच सकता हूं वह हर वैध लॉगिन टोकन को बदल सकता है?
अंतर्दृष्टि लोगों के लिए धन्यवाद।
मेरे पास टोकन रिमोट यूजर के आईपी पर निर्भर करेगा, लेकिन उस कुकी को चेक-इन जानकारी के साथ- प्रत्येक अनुरोध पर बस ठीक काम करने लगता है। – ncuesta
त्वरित प्रतिक्रिया के लिए धन्यवाद, मैं पूरी तरह आईपी जांच के खिलाफ था क्योंकि मुझे पता है कि कुछ गतिशील आईपी पते हैं जो अक्सर बदलते हैं। –
आपको प्रमाणीकरण प्रणाली स्वयं नहीं बनाना चाहिए क्योंकि बहुत सी चीजें गलत हो सकती हैं। इसके बजाए फेसबुक कनेक्ट/ट्विटर साइन इन/ओपनिड इत्यादि का प्रयोग करें! – Alfred