2009-12-09 11 views
5

वर्तमान में उपयोगकर्ता में लॉग इन करने के लिए सत्र का उपयोग कर रहा हूँ। लेकिन जब मैं ब्राउज़र बंद करता हूं और इसे फिर से खोलता हूं तो मुझे फिर से लॉग इन करना होगा। आप उपयोगकर्ता को लॉग इन करने के लिए कैसे कहते हैं 2 सप्ताह कहते हैं।उपयोगकर्ता को एक ही पृष्ठ पर फिर से जाने पर लॉग इन रखें?

क्या यह कुकीज़ के माध्यम से है?

+1

क्या वे प्रश्न का उत्तर दे सकते हैं कृपया इस विषय के बारे में सुरक्षा मुद्दों पर भी विचार करें? उदाहरण के लिए, कुकी को कॉपी करके स्वचालित रूप से लॉग इन करने से कैसे रोकें। धन्यवाद। –

+0

फिर कम से कम सत्रों का उपयोग करने के अंतर्निहित सुरक्षा जोखिम का उल्लेख करें;) – Franz

+0

जब भी संभव हो, आपको मौजूदा प्रमाणीकरण ढांचे का फिर से उपयोग करना चाहिए, क्योंकि, वास्तव में, यह जटिल है। उदाहरण के लिए, https://github.com/delight-im/PHP-Auth – caw

उत्तर

0

हां। आप "ऑटो लॉगिन" (या "मुझे याद रखें") कार्यक्षमता को लागू करने के लिए कुकीज़ का उपयोग करते हैं।

यह google search या SO search results, आपको सही दिशा में इंगित करना चाहिए।

0

हां, आपको कुकीज़ का उपयोग करके ऐसा करना चाहिए। यहां मैन्युअल प्रविष्टि है: http://php.net/manual/en/features.cookies.php

वैकल्पिक रूप से, आप इस फ़ंक्शन को देख सकते हैं: http://php.net/manual/en/function.session-set-cookie-params.phphttp://www.php.net/manual/en/session.configuration.php

सेटिंग आप की जरूरत है कि session.cookie_lifetime है: यह आप अपने जीवनकाल की तरह सत्र कुकी सेटिंग्स को संशोधित करने ...

1

इस पढ़ें अनुमति देता है। सत्र कुकीज (उदाहरण के लिए जिनके पास जीवन भर नहीं है) ब्राउज़र बंद होने पर हटा दिए जाते हैं। यदि आप सत्रों को लंबे समय तक जीवित रहने के लिए चाहते हैं, तो उस सेटिंग को php.ini, httpd.conf, या .htaccess पर सेट करें। संभवतः के साथ ini_set

संपादित भी:

session_set_cookie_params (86400*30); 
session_start() 

86400 * 30 30 दिनों का है: वास्तव में आप इस सुविधा का उपयोग कर सकते हैं।

यहाँ देखें: http://www.php.net/manual/en/function.session-set-cookie-params.php

9

तो तुम एक विकल्प "मुझे इस कम्प्यूटर पर याद रखें" करना चाहते हैं? यहाँ एक भाषा-नास्तिक तरीका है कि कैसे आप यह कर सकते हैं:

  1. कम से कम cookie_id और user_id कॉलम के साथ एक डीबी तालिका बनाएं। यदि आवश्यक हो तो cookie_ttl और ip_lock भी जोड़ें। मुझे लगता है कि कॉलम नाम खुद के लिए बोलता है।
  2. पहली बार लॉगिन (यदि केवल "मुझे याद रखें" विकल्प के साथ जरूरी है), एक लंबी, अद्वितीय, हार्ड-टू-अनुमान कुंजी उत्पन्न करें जो cookie_id का प्रतिनिधित्व करती है और इसे user_id के साथ डीबी में संग्रहीत करती है। इसे पहले कुकी निर्दिष्ट नाम के साथ कुकी के कुकी मान के रूप में भी स्टोर करें। जैसे remember। कुकी को लंबे जीवनकाल दें, उदा। एक साल।
  3. प्रत्येक अनुरोध पर, जांचें कि उपयोगकर्ता लॉग इन है या नहीं, तो कुकी नाम cookie_id कुकी नाम remember से जुड़े कुकी मान की जांच करें। यदि यह वहां है और यह डीबी के अनुसार मान्य है, तो स्वचालित रूप से user_id से जुड़े उपयोगकर्ता को स्वचालित रूप से लॉगिन करें और कुकी आयु को दोबारा स्थगित करें।

सुरक्षा जोखिमों के रूप में, यदि कुंजी लंबी है और पर्याप्त मिश्रित (कम से कम 30 मिश्रित वर्ण), तो लॉगिन को मजबूर करने की संभावना नगण्य है। इसके अलावा आप शायद पहले से ही समझ चुके हैं कि वैकल्पिक कॉलम ip_lock का उपयोग किस लिए किया जाना है। यह उपयोगकर्ता के आईपी पते का प्रतिनिधित्व करना चाहिए। अंततः आप एक अतिरिक्त चेकबॉक्स जोड़ सकते हैं "इस आईपी में लॉक लॉगिन करें (केवल तभी यदि आपके पास स्थिर आईपी है)" ताकि सर्वर उपयोगकर्ता के आईपी पते को अतिरिक्त सत्यापन के रूप में उपयोग कर सके।

और क्या होगा यदि किसी ने आईपी लॉक के बिना उपयोगकर्ता से कुकी मूल्य को अपहृत कर दिया हो? खैर, इसके खिलाफ बहुत कुछ नहीं है। इसके साथ जियो। प्रत्येक फोरम के तहत "मुझे याद रखें" चीज मजाकिया है और खाता-हाइजैक वहां बहुत ज्यादा चोट नहीं पहुंचाएगा, लेकिन मैं निश्चित रूप से इसे व्यवस्थापक पैनलों और सर्वर-साइड सामान को नियंत्रित करने वाले वेबपृष्ठों के लिए इसका उपयोग नहीं करता।

यह काफी सीधे आगे के बाद है। सौभाग्य।

+0

पर एक नज़र डालें, मुझे लगता है कि उपयोगकर्ता-एजेंट को डेटाबेस में स्टोर करना एक अच्छा विचार होगा, क्योंकि यह बहुत ही अजीब बात है कि वही उपयोगकर्ता होगा आईई और फ़ायरफ़ॉक्स दोनों में याद रखना चाहते हैं। वास्तव में अनुरोध से खनन किया जा सकता है सब कुछ कुकी चोरी को रोकने के लिए संग्रहीत किया जाना चाहिए, है ना? .. –

+0

करने योग्य, लेकिन अगर उपयोगकर्ता UA को अपग्रेड किया तो यह असफल हो जाएगा। – BalusC

+0

एक घुसपैठिए के लिए अपनी पहुंच प्राप्त करने के लिए, उपयोगकर्ता के विवरण फिर से दर्ज करने के लिए बेहतर तरीका है। –

संबंधित मुद्दे

 संबंधित मुद्दे