कुकीज़: उनके शुरुआती संस्करण में, एक अद्वितीय ग्राहक के साथ एक टेक्स्ट फ़ाइल, ग्राहक के बारे में आवश्यक अन्य सभी जानकारी (जैसे भूमिकाएँ)
कुकीज़ ग्राहक गतिविधि से संबंधित डेटा key-value
को बनाए रखने के लिए मूल रूप से संबोधित किए गए टुपल्स हैं । यह अवधारण जिसे हम सत्र या अनुप्रयोग स्थिति के रूप में जानते हैं । मूल रूप से, वे वेब अनुप्रयोगों की स्थिति के लिए बनाए गए थे; अधिक विशेष रूप से, क्लाइंट-साइड पर स्थिति। (1)
कुकीज़ आमतौर पर सर्वर द्वारा प्रतिक्रिया हेडर ( Set-Cookie key=value
) के माध्यम से सेट की जाती हैं । हालाँकि, इन्हें क्लाइंट द्वारा भी सेट किया जा सकता है। उदाहरण के लिए, DOM ( document.cookie
) द्वारा ।
कुकीज़ के बारे में जानने के लिए एक महत्वपूर्ण बात यह है कि वे उपयोगकर्ताओं की पहचान नहीं करते हैं। वे बल्कि terna डेटा - क्लाइंट - सर्वर / पथ को जोड़ते हैं । (3)
हम आमतौर पर कुकीज़ को फ़ाइलों के साथ जोड़ते हैं क्योंकि वेब ब्राउज़र के शुरुआती दिनों में उन्हें कुकीज़ को किसी भी तरह से जारी रखना पड़ता था, जो सबसे व्यवहार्य समर्थन फ़ाइलें होती हैं। आज के ब्राउज़र स्थानीय भंडारण (एम्बेडेड DBs) में कुकीज़ (अन्य चीजों के अलावा) को संग्रहीत करते हैं।
सत्र: केवल विशिष्ट क्लाइंट आईडी एक फ़ाइल (जिसे कुकी भी कहा जाता है) में भेजी जाती है, बाकी सब कुछ सर्वर पर संग्रहीत होता है।
सत्र से, मुझे लगता है कि आप सर्वर सत्र का मतलब है । जैसा कि मैंने टिप्पणी की, सत्रों को क्लाइंट-साइड में भी लागू किया जा सकता है। क्लाइंट-साइड सत्र के साथ अंतर यह है कि डेटा सर्वर-साइड पर कहीं संग्रहीत है। (२) ऐसे परिदृश्यों में, जो हमें मिलता है वह सत्र आईडी है; और हम इसे कुकी के रूप में प्राप्त करते हैं। सत्र आईडी के बिना, सर्वर ग्राहक की पिछली गतिविधि के साथ आने वाले अनुरोधों को सहसंबंधित नहीं कर पाएगा। (3) उदाहरण के लिए, प्रमाणित उपयोगकर्ता, खरीदारी की टोकरी, आदि।
किसी भी मामले में, एक सत्र आईडी जरूरी नहीं कि उपयोगकर्ता की पहचान करे। यह वेब क्लाइंट के साथ एक विशिष्ट एप्लिकेशन स्थिति को जोड़ता है। सत्र में उपयोगकर्ता डेटा शामिल नहीं हो सकता है या नहीं।
वितरित प्राप्तियों में, सत्र स्पष्ट कारणों से क्रमबद्ध होना चाहिए। यदि वे मेमोरी में स्टोर किए जाते हैं, तो इन-मेमोरी स्टोरेज (घटक) क्रमिक होना चाहिए। एक आम समाधान सत्र को फाइलों में संग्रहीत करना है। या RedSQL की तरह NoSQL DB में।
सुरक्षा के संबंध में। सर्वर-साइड सत्र क्लाइंट-साइड से अधिक सुरक्षित होते हैं। ग्राहक खतरों के प्रति अधिक संवेदनशील होते हैं क्योंकि उपयोगकर्ता आमतौर पर उन बहुत से खतरों से अनजान होते हैं जिनसे वे अवगत होते हैं। कम से कम नियमित उपयोगकर्ता नहीं।
दूसरी ओर, सर्वर-साइड इंफ्रास्ट्रक्चर पर हमला करना उचित नहीं है।
JWT: सब कुछ टोकन में संग्रहित किया जाता है (जिसे टेक्स्ट फ़ाइल में भी संग्रहीत किया जा सकता है, जिसे कुकी भी कहा जाता है)
ज़रुरी नहीं। जेडब्ल्यूटी मुख्य रूप से प्राधिकरण और टोकन के जारीकर्ता से संबंधित डेटा संग्रहीत करता है।
यद्यपि वे उपयोगकर्ता आईडी (उप) को शामिल करने के लिए उपयोग करते हैं, हम JWTs पाते हैं जो प्रमाणित उपयोगकर्ताओं की पहचान नहीं करते हैं। उदाहरण के लिए, मेहमानों के सत्र के लिए टोकन। JWTs की मुख्य सामग्री दावे हैं ; प्राधिकरण प्रक्रिया द्वारा जाँच की जाने वाली वस्तुएँ।
यह ध्यान रखना महत्वपूर्ण है कि JWTs वैश्विक भंडार नहीं हैं । सत्र या आवेदन राज्य अभी भी कहीं संग्रहीत और स्वतंत्र रूप से प्रबंधित किया जाना है।
JWTs के बारे में, इन्हें अक्सर कुकीज़ के रूप में संग्रहीत किया जाता है, हालाँकि इन्हें स्थानीय भंडारण में भी संग्रहीत किया जा सकता है। इसके अलावा, OWASP समुदाय सेशनस्टोर को वेब ब्राउज़र के लिए अधिक सुरक्षित मानता है। हालाँकि, यह ब्राउज़र के संस्करण पर निर्भर करता है ।
1: वर्ल्ड वाइड वेब का मतलब स्टेटलेस होना है। अगर हम स्टेटलेस सर्वर-साइड एप्लिकेशन बनाना चाहते हैं, तो सत्र को क्लाइंट-साइड में कहीं स्टोर किया जाना चाहिए।
2: सर्वर-साइड एप्लिकेशन को स्टेटफुल एप्लिकेशन में बदलना ।
3: क्लाइंट अनुप्रयोग के रूप में, उपयोगकर्ता के रूप में नहीं।
user_id
लॉग इन उपयोगकर्ता के लिए कुछ ऐसा हो सकता है ।