2012-02-06 4 views

उत्तर

13

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

सत्र चर, आमतौर पर $_SESSION सरणी में मानों का संदर्भ लेते हैं। उदाहरण के लिए http://www.php.net/manual/en/function.session-start.php देखें। ये मान क्लाइंट को नेटवर्क पर कभी नहीं भेजे जाते हैं।

जहां तक ​​सत्र पहचानकर्ताओं की सुरक्षा का संबंध है, मैंने पहले पैराग्राफ में पहले से ही समझाया है कि वे ब्राउज़र में कुकीज़ के रूप में संग्रहीत हैं। एक HTTP सत्र में, कुकीज़ को सर्वर और क्लाइंट के बीच cleartext में प्रेषित किया जाता है। यह छिपाने के लिए कमजोर है (उदाहरण के लिए, राउटर पर एक लड़का जिसके माध्यम से आपके पैकेट पास आपके पैकेट को कैप्चर कर सकते हैं और सत्र पहचानकर्ता पढ़ सकते हैं)। इस समस्या को दूर करने का सबसे अच्छा तरीका इसके बजाय HTTPS का उपयोग करना है।

0

मुझे लगता है कि यह "सुरक्षा लाभ" से आपका क्या मतलब है इस पर निर्भर करता है। यदि आपका एप्लिकेशन किसी साझा होस्ट पर है, और आपका सत्र डेटा कुछ असुरक्षित केंद्रीय स्थान पर रखा जा रहा है जहां यह अन्य उपयोगकर्ताओं को पढ़ने के लिए खुला हो सकता है, तो yes, तकनीकी रूप से आपके सत्रों को एन्क्रिप्ट करने के लिए कुछ सुरक्षा लाभ हैं। हालांकि, यह write your own session storage mechanism पर आपके समय और प्रयास का एक बेहतर उपयोग होगा ताकि आप उन्हें पहले स्थान पर असुरक्षित स्थान पर संग्रहीत न करें; विशेष रूप से एन्क्रिप्शन पूरी तरह से गलत करना और सुरक्षा की झूठी भावना देना कितना आसान है।

+0

+1 ... मुझे लगता है कि यह बेहतर सवाल का जवाब देता है। सत्र चर स्वयं को प्रकट नहीं किया जाता है (जब तक आप उन्हें कुछ बेवकूफ नहीं करते हैं जो उन्हें उजागर करता है) लेकिन यदि आप एक बुरी तरह से कॉन्फ़िगर किए गए साझा होस्ट पर हैं जहां एक सार्वभौमिक tmp/सत्र संग्रहण स्थान है तो सर्वर पर अन्य साइटें मिल सकती हैं उन तक पहुंच –

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