2010-07-10 12 views
5

के लिए php एप्लिकेशन में लॉग इन रहें हमारे पास ज़ेंड फ्रेमवर्क में लिखा गया एक PHP अनुप्रयोग है और यह सोच रहा है कि क्या हम अपने उपयोगकर्ताओं को एक दिन से अधिक समय तक लॉग इन करना चाहते हैं, तो सबसे अच्छा तरीका क्या होगा। एक हफ्ते या उससे भी ज्यादा।+1 सप्ताह

क्या हमें इसके लिए सत्र की आवश्यकता है? (टेबल स्पेस और मेमोरी का उपयोग करता है?) या कुकीज़ के साथ काम करना बेहतर है? (सुरक्षा?)

+0

इस समय आप क्या उपयोग कर रहे हैं? –

उत्तर

3

HTTP स्टेटलेस है, जिसका अर्थ है कि वेबसर्वर भूल जाएगा कि आपके अनुरोध के बाद आप कौन हैं। सत्र इस तरह के रास्ते हैं। सत्र का उपयोग करते समय, ब्राउज़र और सर्वर प्रत्येक अनुरोध पर एक पहचानकर्ता का आदान-प्रदान करेगा जो वेबसेवर को पहले से संग्रहीत डेटा को इस विशेष अनुरोधकर्ता से कनेक्ट करने देता है।

आईडी आमतौर पर कुकी में संग्रहीत है। अपने सत्र कुकी को एक सप्ताह में समाप्त होने के लिए सेट करें और आप अपने उपयोगकर्ताओं को एक हफ्ते तक लॉग इन रखने के लिए तैयार हैं।

कड़ाई से आप सत्रों की जरूरत नहीं है बोल

+0

क्या आप कह रहे हैं कि हमें एक सप्ताह तक सत्र रखना चाहिए? क्या वह सत्र तालिका डेटा/मेमोरी का उपयोग नहीं करेगा? या वह ऐसा कुछ है जो वास्तव में एक बड़ी समस्या नहीं है, यहां तक ​​कि बहुत से उपयोगकर्ताओं के साथ भी? – Jorre

+0

@ जोरे जो आप सत्र संग्रहण में फेंकते हैं और क्या * उपयोगकर्ताओं के बहुत सारे हैं और सिस्टम की हार्डवेयर क्षमता क्या है, इस पर निर्भर करता है। जल्द या बाद में कोई भी प्रणाली इसकी क्षमता तक पहुंच जाएगी। इन महान लेखों के लिंक के लिए – Gordon

+0

+1 :) – coldfix

1

देखें। आप दो चीजों को भ्रमित कर रहे हैं:

  • सत्रों का उपयोग किसी विशिष्ट उपयोगकर्ता के लिए डेटा सर्वर-पक्ष को स्टोर करने के लिए किया जाता है। इसमें शायद उपयोगकर्ता नाम शामिल होगा जिसके साथ उपयोगकर्ता लॉग इन करता है। सत्र आमतौर पर अपेक्षाकृत अल्पकालिक होते हैं (उदा। कुछ मिनट या निष्क्रियता के घंटे के बाद समाप्त हो जाते हैं)। सत्र कुकीज (यानी, उपयोगकर्ता जो ब्राउजर को बंद करने के बाद समाप्त हो जाता है) आमतौर पर किसी दिए गए उपयोगकर्ता को किसी दिए गए सत्र से जोड़ने के लिए उपयोग किया जाता है, हालांकि अन्य सभी विधियों का उपयोग किया जा सकता है, जैसे यूआरएल में सत्र आईडी पास करना (सत्र निर्धारण से सावधान रहना इस मामले में)।
  • लंबे समय तक रहने वाले लॉग इन के लिए, आम तौर पर एक गैर-सत्र कुकी में उपयोगकर्ता प्रमाण-पत्र या कुछ मध्यम-अवधि के उपयोगकर्ता प्रमाण-पत्र सरोगेट को संग्रहीत करता है जो कुछ हफ्तों या महीनों के बाद समाप्त होने के लिए निर्धारित होता है। जब भी उपयोगकर्ता के पास उससे जुड़े सक्रिय सत्र नहीं होते हैं, तो इन क्रेडेंशियल्स का उपयोग उपयोगकर्ता इंटरैक्शन के बिना ऐसे सत्र को शुरू करने के लिए किया जाता है।

तो मूल रूप से, कुकीज़ को दो उद्देश्यों के लिए उपयोग किया जाता है - एक अल्पकालिक (मिनीसाइट्स या घंटे) सत्र आईडी स्टोर करने और कुछ दिनों/सप्ताह/महीनों के लिए उपयोगकर्ता प्रमाण-पत्र स्टोर करने के लिए।

+2

मैं दूसरे बुलेट बिंदु से असहमत हूं। कुकी में कभी भी क्रेडेंशियल का उपयोग न करें। यह असुरक्षित है। इसके अलावा, सत्र या इसकी कुकी को कम रहने का कोई कारण नहीं है। ब्राउज़र बंद होने पर सत्र कुकी हटा दी जा रही है केवल डिफ़ॉल्ट सेटिंग है। यह आप जो कुछ भी चाहते हैं उसे बदल सकते हैं। – Gordon

+0

@ गॉर्डन यह केवल असुरक्षित है अगर आप असुरक्षित करते हैं तो यह असुरक्षित है। आप कुकी सुरक्षित को चिह्नित कर सकते हैं और फिर इसे केवल https के माध्यम से भेजा जाएगा। – Artefacto

+1

वह क्लाइंट से सर्वर पर केवल HTTPS का उपयोग करेगा। साथ ही, मैं नहीं देखता कि मुझे दूसरी कुकी का उपयोग क्यों करना चाहिए जब इसे आसानी से सत्र कुकी के साथ आसानी से संभाला जा सके। बस जीवन भर। – Gordon

1

"मुझे याद रखें" हमेशा सुरक्षा में एक छेद है, जो भी आप उपयोग करते हैं - कुकी या सत्र - कोई (सिद्धांत में) एक कुकी चुरा सकता है, और इस प्रकार बिना किसी पासवर्ड के खाता दर्ज कर सकता है। केवल एक ही आईपी के तहत याद करने की अनुमति देकर सुरक्षा बढ़ाने के तरीके हैं। कुकीज़ AFAIK कम सुरक्षित होती हैं, हालांकि यह आपके द्वारा लागू क्रिया के तरीके पर निर्भर करती है। उदाहरण के लिए, कुकीज में पासवर्ड हैश रखने से आप लगभग घुसपैठ करने वाले को वास्तविक पासवर्ड देते हैं (जो नो-नो है, इसका इस्तेमाल अन्य वेबपैप्स पर किया जा सकता है) क्योंकि हैश से सरल पासवर्ड प्राप्त करने के लिए शब्दकोश हैं। साल्टिंग हैश ज्यादा मदद नहीं करता है।

सब कुछ, सत्र सबसे सरल और अच्छी तरह से पर्याप्त तरीका है। यदि आप ऐप के लिए एक से अधिक वेबसर्वर का उपयोग करते हैं तो टेबल का उपयोग करें, अन्यथा डिस्क पर सत्र ठीक है।

+0

आप अभी भी सत्रों को लागू करने के लिए कुकीज़ का उपयोग करते हैं, अगर कोई कुकी को हस्तक्षेप करता है तो वह सत्र को हाइजैक कर सकता है। तो वास्तव में, यह एक सत्र बनाम कुकीज़ dichotomy पेश करने के लिए ज्यादा समझ में नहीं आता है। सत्र एक अलग, अधिक अमूर्त अवधारणा है और कुकीज़ ऐसी अवधारणा के कार्यान्वयन में एक आम टुकड़ा है। – Artefacto

+1

सत्र कुकी का उपयोग करता है, जो मेरी पहली वाक्य में लिखा गया है। हालांकि, यदि कुकी चोरी हो गई है तो सर्वर अभी भी उपयोगकर्ता के आईपी की तुलना कर सकता है और ऑटो-इनकार कर सकता है। इसका भी उल्लेख है;) –

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