मैंने PHP सत्रों का उपयोग करके एक लॉगिन सिस्टम बनाया है।क्या यह लॉगिन सत्र सुरक्षित है?
यहाँ यह कैसे काम करता है:
1.) जब) में उपयोगकर्ता के लॉग (वैध प्रवेश जानकारी के साथ: उनकी जानकारी (username
और password
) के कुछ अन्य बिट्स के साथ, एक सत्र में जमा हो जाती है साथ जानकारी: The Expire time
: यह वर्तमान समय पर केवल 5 मिनट जोड़े गए हैं (इसलिए यदि उपयोगकर्ता लॉगिन 22:30 बजे समाप्त हो गया है तो समाप्त हो जाएगा 22:35)।
2.) उपयोगकर्ता के प्रत्येक पृष्ठ दृश्य में लॉग इन होने पर: सत्र देखने के लिए चेक किया गया है या नहीं। यदि ऐसा नहीं होता है, तो उपयोगकर्ता को लॉगिन पृष्ठ पर रीडायरेक्ट किया जाता है। यदि सत्र मौजूद है, तो यह expire time
की जांच करता है और इसे current time
से तुलना करता है। यदि expire time
अधिक है तो current time
(उपयोगकर्ता 5+ मिनट के लिए निष्क्रिय है) तो उनके उपयोगकर्ता विवरण (सत्र में) चेक किए जाते हैं (डेटाबेस में किसी की तुलना में) और Expiretime
सत्र अपडेट किया गया है, लेकिन यदि expire time
कम है तो current time
, यह किसी भी विवरण की जांच नहीं करेगा, expire time
सत्र अपडेट करता है और उपयोगकर्ता को आगे बढ़ने की अनुमति देगा। मैंने बैंडविड्थ को बचाने के लिए डीबी पर निरंतर पूछताछ को रोकने के लिए किया है।
तो मूल रूप से, जब उपयोगकर्ता सफलतापूर्वक लॉग ऑन हो जाता है, तो उनके उपयोगकर्ता नाम और पासवर्ड को तब तक डीबी पर चेक नहीं किया जाएगा जब तक कि वे 5+ मिनट के लिए निष्क्रिय नहीं होते हैं (यदि वे एक पृष्ठ पर रहते हैं) या यदि वे लॉग आउट करते हैं।
कुछ लोग उल्लेख करना भूल गया: समय सीमा समाप्त समय सत्र वास्तव में कहा जाता है expire_time_unique_characters
($_SESSION['expire_time_'.$unique_nu]
) जिसका मतलब है कि बुराई व्यक्ति को भी जब सत्र faking $unique_nu
खोजने के लिए होगा ...
मैं बस है यह महसूस करता है कि यह बहुत सुरक्षित नहीं है।
इसके अलावा, परियोजना इस बात के लिए है खुला स्रोत (लोगों स्रोत कोड देख सकते हैं) तो यह है कि एक और भी अधिक खतरा बना हुआ है यहाँ है ...
तुम लोग मुझे कुछ प्रतिक्रिया दे सकते हैं?
धन्यवाद
सर्वर पर उपयोगकर्ता/पासवर्ड संयोजन को cleartext में क्यों संग्रहीत करें? सुरक्षा में सुधार करने के लिए _that_ कैसे है? यदि उपयोगकर्ता/पासवर्ड गलत था, सत्र की तुलना में पहले स्थान पर स्थापित नहीं किया गया था, है ना? –
@ निकलास सत्र सफल हो जाने के बाद ही सत्र बनाया जाएगा। –
फिर आपको हर कुछ मिनट में लॉगिन संयोजन को फिर से जांचने की आवश्यकता नहीं है। बस सर्वर पर उपयोगकर्ता नाम/पासवर्ड स्टोर न करें। इसके अलावा, उन्हें डेटाबेस में भी स्टोर न करें! इसके लिए एक मजबूत हैशिंग एल्गोरिदम का उपयोग करें (मुख्य रूप से कुंजी खींचने के साथ) –