2010-10-13 17 views
15

डेटा सुरक्षा और गोपनीयता कारणों से मैं जानना चाहता हूं कि क्यों Magento एक फ्रंटेंड सत्र के लिए दो कुकीज़ का उपयोग करता है।Magento प्रति सत्र 2 कुकीज़ का उपयोग क्यों करता है?

मुझे पता है कि उनमें से एक Mage_Core_Model_Cookie::set(..) में सेट किया जा रहा है और दूसरा Zend_Session::expireSessionCookie() में सेट किया जा रहा है, लेकिन फिर भी मुझे यह पता लगाना प्रतीत नहीं होता कि उनका क्या उपयोग किया जाता है।

मैं किसी भी कारण से नहीं सोच सकता कि किसी को एक ही डोमेन के लिए दूसरी कुकी की आवश्यकता क्यों होगी।

+0

कृपया डाउनवॉटिंग पर एक टिप्पणी छोड़ दें .. –

+0

हाँ, इस सवाल को बिना किसी टिप्पणी के डाउनवॉट करना बहुत अजीब लगता है। मुझे एक सुंदर सभ्य सवाल की तरह समझा। –

+0

+1 अच्छा सवाल है। – dmp

उत्तर

5

मैं session_start() कॉल और कथन को Mage_Core_Model_Session_Abstract_Varien::start(..) में सेट करने के आदेश को उलटकर इसे ठीक करने में सक्षम था। उन दो लाइनें अब इस तरह दिखना:

$cookie->set(session_name(), $this->getSessionId()); 
session_start(); 

अब यह केवल एक एकल कुकी बनाता है और यह किसी भी दुष्प्रभाव नहीं लगता है।

बीटीडब्लू: अन्य कुकी Zend_Session में नहीं बनाई गई थी जैसा कि मैंने माना था, लेकिन इसके बजाय वे दोनों Mage_Core_Model_Session_Abstract_Varien::start(..) से आए थे।

+1

अच्छा समाधान, लेकिन कोर फ़ाइलों को संपादित करने में सावधान रहें। आपको कोर को संपादित करने के बजाय 'एप/कोड/स्थानीय' फ़ाइल पदानुक्रम में एक प्रतिलिपि बनाना चाहिए (कम से कम)। यह उन्नयन/पैच के लिए टूटना कम करना चाहिए। –

+0

हां, आप सही हैं, वास्तव में मैंने वास्तव में इसे इस तरह से किया है। मुझे कोर फाइलों को हैक करना पसंद नहीं है, लेकिन इस तरह के मामलों में मुझे लगता है कि एक मौका खड़ा नहीं है। –

6

मैं इस एक वेस्टिगियल कोड को कॉल करने जा रहा हूं। वेरिएन ज़ेंड फ्रेमवर्क पर भारी रूप से निर्भर करता है क्योंकि मैगेंटो के लिए अंडरपिनिंग है, इसलिए कई वर्ग (उदाहरण के लिए ज़ेंड_Session) Magento कार्यान्वयन के लिए मूल कक्षाओं के रूप में उपयोग किया जाता है।

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

यह भी ध्यान दें कि मैं किसी भी स्पष्ट हानिकारक प्रभाव के बिना ज़ेंड कुकी को हटाने में सक्षम था (मेरा लॉगिन सत्र और कार्ट सुलभ बना हुआ था, और कुकी को तुरंत नहीं बदला गया था)।

+1

धन्यवाद! मैंने बस दूसरी कुकी को भी हटाने की कोशिश की और ऐसा लगता है कि इसकी आवश्यकता नहीं है। इसलिए मैं इस कुकी को किसी भी दुष्प्रभाव के बिना पूरी तरह से हटा सकता हूं। –

2

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

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