खैर, हमेशा नहीं। कुकीज़ का उपयोग करना, आप अच्छे हैं। लेकिन "क्या मैं सुरक्षित रूप से आईडी के मौजूद होने पर भरोसा कर सकता हूं" ने मुझे एक महत्वपूर्ण बिंदु के साथ चर्चा का विस्तार करने का आग्रह किया (ज्यादातर संदर्भ के लिए, क्योंकि इस पृष्ठ की आगंतुक गणना काफी अधिक लगती है)।
कुकी के बजाय URL को URL-पुनर्लेखन द्वारा सत्र बनाए रखने के लिए कॉन्फ़िगर किया जा सकता है। ( यह कैसे अच्छा है या बुरा है (<- देखें कि वहां सबसे ऊपर की टिप्पणी) एक अलग सवाल है , चलो अब वर्तमान में चिपके रहते हैं, सिर्फ एक साइड-नोट के साथ: URL- आधारित सत्रों के साथ सबसे प्रमुख मुद्दा - धुंधला , अगर यह अजाक्स के लिए चालू है, यह भी साइट के आराम के लिए चालू है, इसलिए वहाँ लेकिन फिर ...); - नग्न सत्र आईडी की दृश्यता नहीं आंतरिक अजाक्स कॉल के साथ एक मुद्दा है
URL-पुनर्लेखन (कुकरैल) सत्रों के मामले में, अजाक्स कॉल को स्वयं यह ध्यान रखना चाहिए कि उनके अनुरोध URL ठीक से तैयार किए गए हैं। (या आप अपने स्वयं के कस्टम समाधान को रोल कर सकते हैं। आप कम मांग वाले मामलों में भी ग्राहक पक्ष पर सत्रों को बनाए रखने का सहारा ले सकते हैं ।) सत्र निरंतरता के लिए आवश्यक स्पष्ट देखभाल है , यदि कुकीज़ का उपयोग नहीं किया जाता है:
अजाक्स सिर्फ कॉल करता है निकालने (उम्म, cookified) यूआरएल (PHP से प्राप्त के रूप में) HTML से शब्दशः, कि ठीक है, के रूप में वे पहले से ही पकाया जाता है होना चाहिए।
यदि उन्हें स्वयं URI के अनुरोध को इकट्ठा करने की आवश्यकता है , तो सत्र ID को URL से मैन्युअल रूप से जोड़ना होगा। (चेक यहाँ पीएचपी द्वारा उत्पन्न पेज स्रोतों (या पर URL को फिर से लिखने के साथ ) इसे कैसे करना देखने के लिए।)
से OWASP.org :
प्रभावी रूप से, वेब एप्लिकेशन तंत्र, कुकीज़ या URL दोनों मापदंडों का उपयोग कर सकता है, या यहां तक कि एक से दूसरे में स्विच कर सकता है (स्वचालित URL पुनर्लेखन) यदि कुछ शर्तें पूरी होती हैं (उदाहरण के लिए, कुकीज़ का समर्थन किए बिना वेब क्लाइंट का अस्तित्व या जब कुकीज़ नहीं हैं उपयोगकर्ता गोपनीयता चिंताओं के कारण स्वीकार किए जाते हैं)।
एक से रूबी-मंच पोस्ट:
कुकीज़ के साथ php का उपयोग करते समय, सत्र आईडी स्वचालित रूप से Ajax XMLHttpRequests के लिए अनुरोध हेडर में भी भेजा जाएगा। यदि आप URL-आधारित php सत्रों का उपयोग या अनुमति देते हैं, तो आपको सत्र आईडी को प्रत्येक Ajax अनुरोध url में जोड़ना होगा।
HttpOnly
कुकी को सेट करते समय सर्वर एक ध्वज सेट कर सकता है जिसका अर्थ है कि आपका जावास्क्रिप्ट कुकी को देखने में सक्षम नहीं होगा। हालाँकि कुकी को अभी भी AJAX और नियमित पेज अनुरोध दोनों के लिए भेजा जाएगा और ठीक उसी तरह काम करना जारी रहेगा। आपकी जावास्क्रिप्ट अभी इसमें दिखाई नहीं देगीdocument.cookie
।