कुकी समर्थन के लिए जांच का एक आम तरीका एक रीडायरेक्ट के माध्यम से है।
यह केवल एक अच्छा विचार है जब उपयोगकर्ता ऐसा कुछ करने का प्रयास कर रहा है जो सत्र शुरू करता है, जैसे लॉग इन करना, या अपने कार्ट में कुछ जोड़ना। अन्यथा, आप इसे कैसे संभालेंगे, इस पर निर्भर करते हुए, आप संभावित रूप से उपयोगकर्ताओं के लिए अपनी संपूर्ण साइट तक पहुंच को अवरुद्ध कर रहे हैं - या बॉट - जो कुकीज़ का समर्थन नहीं करते हैं।
सबसे पहले, सर्वर लॉगिन डेटा को सामान्य के रूप में जांचता है - यदि लॉगिन डेटा गलत है तो उपयोगकर्ता को सामान्य रूप से प्रतिक्रिया प्राप्त होती है।यदि यह सही है, तो सर्वर तुरंत एक कुकी के साथ प्रतिक्रिया देता है और उस पृष्ठ पर रीडायरेक्ट करता है जिसे उस कुकी की जांच करने के लिए डिज़ाइन किया गया है - जो कि एक ही यूआरएल हो सकता है लेकिन क्वेरी स्ट्रिंग में कुछ झंडे के साथ जोड़ा जा सकता है। यदि वह दूसरा पृष्ठ कुकी प्राप्त नहीं करता है, तो उपयोगकर्ता को यह संदेश मिलता है कि वे लॉग इन नहीं कर सकते क्योंकि कुकीज़ उनके ब्राउज़र पर अक्षम हैं।
यदि आप पहले से ही अपने लॉगिन फॉर्म के लिए पोस्ट-रीडायरेक्ट-गेट पैटर्न का पालन कर रहे हैं, तो कुकी की यह सेटिंग और जांच कोई अतिरिक्त अनुरोध नहीं जोड़ती है - कुकी को मौजूदा रीडायरेक्ट के दौरान सेट किया जा सकता है, और द्वारा चेक किया गया गंतव्य जो पुनर्निर्देशन के बाद लोड होता है।
अब क्यों मैं केवल प्रत्येक पृष्ठ लोड के अलावा उपयोगकर्ता द्वारा शुरू की गई कार्रवाई के बाद कुकी परीक्षण करता हूं। मैंने साइट्स को प्रत्येक पृष्ठ पर कुकी परीक्षण लागू करने के लिए देखा है, यह महसूस नहीं कर रहा है कि यह साइट पर क्रॉल करने की कोशिश कर रहे खोज इंजन जैसी चीजों पर प्रभाव डालने वाला है। यही है, यदि किसी उपयोगकर्ता के पास कुकीज़ सक्षम हैं, तो परीक्षण कुकी एक बार सेट की जाती है, इसलिए उन्हें केवल पहले पृष्ठ पर रीडायरेक्ट सहन करना पड़ता है और तब से कोई रीडायरेक्ट नहीं होता है। हालांकि, किसी भी ब्राउज़र या अन्य उपयोगकर्ता-एजेंट के लिए, एक खोज इंजन की तरह, जो कुकीज़ नहीं लौटाता है, हर पृष्ठ पर केवल एक रीडायरेक्ट हो सकता है।
कुकी समर्थन के लिए जांच करने का एक और तरीका जावास्क्रिप्ट के साथ है - इस तरह, कोई रीडायरेक्ट जरूरी नहीं है - आप एक कुकी लिख सकते हैं और यह देखने के लिए इसे तुरंत वापस पढ़ सकते हैं कि यह संग्रहीत किया गया था और फिर पुनर्प्राप्त किया गया था। इसका नकारात्मक पक्ष यह क्लाइंट साइड पर स्क्रिप्ट में चलता है - यानी यदि आप अभी भी संदेश चाहते हैं कि कुकीज सर्वर पर वापस आने के लिए समर्थित हैं या नहीं, तो आपको अभी भी इसे व्यवस्थित करना होगा - जैसे अजाक्स कॉल के साथ।
अपने स्वयं के आवेदन के लिए, मैं 'लॉग इन सीएसआरएफ' हमलों, सीएसआरएफ हमलों के एक संस्करण के लिए कुछ सुरक्षा लागू करता हूं, जिसमें उपयोगकर्ता लॉग इन करने से पहले लॉगिन स्क्रीन पर एक यादृच्छिक टोकन युक्त कुकी सेट करके और उस टोकन को चेक करते समय उपयोगकर्ता अपने लॉगिन विवरण जमा करता है। Google से लॉगिन सीएसआरएफ के बारे में और पढ़ें। इसका एक दुष्प्रभाव यह है कि जिस क्षण वे लॉग इन करते हैं, मैं उस कुकी के अस्तित्व की जांच कर सकता हूं - एक अतिरिक्त रीडायरेक्ट आवश्यक नहीं है।
कहाँ में सक्षम होते हैं देता है? ब्राउज़र में (क्लाइंट साइड)? या सर्वर में? (कौन सा सर्वर) –
सर्वर में कुकीज़ ???? – balexandre
सर्वर पक्ष कोड में सक्षम कुकीज़ सक्षम/अक्षम, हां। –