दिलचस्प पोस्ट
यूनिक्स टाइमस्टैम्प स्ट्रिंग को पायथन में पठनीय दिनांक में परिवर्तित करना SQL सर्वर में संख्यात्मक, फ्लोट और दशमलव में अंतर स्क्रीन कैप्चरिंग का सबसे तेज तरीका AVAsset का उपयोग करते हुए फिल्म अर्रे और गीत फ़ाइल के साथ मूवी फ़ाइल बनाएं जावास्क्रिप्ट प्रोटोटाइप को परिभाषित करना इंजेक्शन वाले वर्ग का नाम क्यों है? जावा में अपवितरित विधियों या कक्षाओं का उपयोग करना गलत है? एल्गोरिथम सीमित सीमा क्या है? कोणीय निर्देशों में एक नियंत्रक की आवश्यकता कैसे होती है पायथन में लगभग समानता के लिए फ्लोट की तुलना करने का सबसे अच्छा तरीका क्या है? मैं कैसे पता लगा सकता है कि उपयोगकर्ता को वापस बटन का उपयोग करते हुए एक पृष्ठ मिला है? यह कैसे बताने के लिए कि क्या <script> टैग को लोड करने में विफल रहे स्लाइडिंग या अस्पष्टता प्रभाव के साथ सरल jQuery छवि स्लाइडर का निर्माण कैसे करें? $ (document) .ready (function () {}); पृष्ठ के निचले भाग में बनाम स्क्रिप्ट उपयोगकर्ता PHP कैसे चल रहा है यह कैसे जांचें?

सर्वर की ओर से पता चलता है कि कुकीज़ अक्षम हैं या नहीं

मैं सर्वर (सर्वर-साइड) पर कैसे पता लगा सकता हूं कि ब्राउज़र में कुकीज़ अक्षम हैं? क्या यह संभव है?

विस्तृत विवरण: मैं सर्वर पर एक HTTP अनुरोध की प्रक्रिया कर रहा हूं। मैं Set-Cookie हेडर के जरिये एक कुकी सेट करना चाहता हूं। मुझे उस समय पता होना चाहिए कि क्या कुकी क्लाइंट ब्राउज़र द्वारा निर्धारित की जाएगी या कुकी सेट करने का मेरा अनुरोध अनदेखा कर दिया जाएगा।

वेब के समाधान से एकत्रित समाधान "सर्वर की ओर से पता चलता है कि कुकीज़ अक्षम हैं या नहीं"

कुकी सेट के साथ एक रीडायरेक्ट प्रतिक्रिया भेजें; कुकी के लिए (विशेष) रीडायरेक्ट यूआरएल टेस्ट प्रसंस्करण करते समय – अगर यह सामान्य प्रसंस्करण पर पुनर्निर्देशित होता है, अन्यथा एक त्रुटि राज्य पर पुनर्निर्देशित होता है।

ध्यान दें कि यह केवल आपको बता सकता है कि ब्राउज़र को कुकी सेट करने की अनुमति है, लेकिन वह कितनी देर तक नहीं है मेरी एफएफ मुझे सभी कुकीज़ को "सत्र" मोड पर लागू करने की अनुमति देती है, जब तक कि साइट विशेष रूप से एक अपवाद सूची में शामिल नहीं हो जाती है – ऐसे कुकीज त्याग दिए जाएंगे, जब एफएफ बंद हो जाए, सर्वर निर्दिष्ट समाप्ति की परवाह किए बिना। और यह हमेशा मैं एफएफ चला रहा हूं।

आप इसे पूरा करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं

लाइब्रेरी:

 function createCookie(name, value, days) { var expires; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } else expires = ""; document.cookie = name + "=" + value + expires + "; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; } function eraseCookie(name) { createCookie(name, "", -1); } function areCookiesEnabled() { var r = false; createCookie("testing", "Hello", 1); if (readCookie("testing") != null) { r = true; eraseCookie("testing"); } return r; } 

चलाने के लिए कोड:

 alert(areCookiesEnabled()); 

याद है

यह केवल काम करता है अगर जावास्क्रिप्ट सक्षम है!

मुझे लगता है कि जांच करने के लिए सीधा तरीके हैं सबसे अच्छा तरीका है कुकी में एक मान को स्टोर करना और उन्हें पढ़ने की कोशिश करना और तय करना है कि क्या कुकीज़ सक्षम हैं या नहीं।

कुकी समर्थन की जांच करने का एक सामान्य तरीका एक रीडायरेक्ट के जरिए है।

यह केवल यह करने के लिए एक अच्छा विचार है जब उपयोगकर्ता कुछ ऐसा करने की कोशिश कर रहा है जो एक सत्र की शुरुआत करता है, जैसे लॉग इन करना या उनके कार्ट में कुछ जोड़ना अन्यथा, आप इसे कैसे संभालते हैं इसके आधार पर, आप संभावित रूप से उपयोगकर्ताओं के लिए अपनी पूरी साइट तक पहुंच रोक सकते हैं – या बोट्स – जो कुकीज़ का समर्थन नहीं करते हैं

सबसे पहले, सर्वर लॉगिन डेटा को सामान्य रूप में जांचता है – अगर लॉगिन डेटा गलत है तो उपयोगकर्ता सामान्य रूप से प्रतिक्रिया प्राप्त करता है। यदि यह सही है, तो सर्वर तुरंत एक कुकी के साथ जवाब देता है और एक पृष्ठ पर रीडायरेक्ट करता है जिसे उस कुकी की जांच करने के लिए डिज़ाइन किया गया है – जो कि केवल एक ही यूआरएल हो सकता है लेकिन क्वेरी स्ट्रिंग में कुछ ध्वज को जोड़ा गया हो। यदि वह दूसरा पेज कुकी प्राप्त नहीं करता है, तो उपयोगकर्ता को यह कहते हुए एक संदेश प्राप्त होता है कि वे लॉग इन नहीं कर सकते क्योंकि उनके ब्राउज़र पर कुकीज़ अक्षम हैं।

यदि आप पहले से ही अपने लॉगिन फॉर्म के लिए पोस्ट-रीडायरेक्ट-गेट पैटर्न का पालन कर रहे हैं, तो यह सेटिंग और कुकी की जांच किसी भी अतिरिक्त अनुरोध को नहीं जोड़ती है – कुकी को मौजूदा रीडायरेक्ट के दौरान सेट किया जा सकता है, और लोड किए गए गंतव्य द्वारा चेक किया जा सकता है रीडायरेक्ट के बाद

अब प्रत्येक पृष्ठ लोड के अलावा उपयोगकर्ता द्वारा शुरू की गई कार्रवाई के बाद मैं केवल कुकी परीक्षण क्यों करता हूं मैंने साइटों को हर पृष्ठ पर एक कुकी टेस्ट को लागू किया है, यह महसूस नहीं कर रहा है कि इस साइट पर क्रॉल करने की कोशिश में खोज इंजन जैसी चीजों पर इसका असर पड़ेगा। यही है, यदि उपयोगकर्ता को कुकी सक्षम है, तो एक बार परीक्षण कुकी सेट की जाती है, इसलिए उन्हें केवल पहले पेज पर रीडायरेक्ट को सहना पाना होगा और तब से कोई रीडायरेक्ट नहीं हैं। हालांकि, किसी भी ब्राउज़र या अन्य उपयोगकर्ता-एजेंट के लिए, एक खोज इंजन की तरह, जो कुकीज़ को वापस नहीं करता, हर एक पृष्ठ बस एक रीडायरेक्ट में परिणाम कर सकता था।

कुकी समर्थन की जांच करने की एक अन्य विधि जावास्क्रिप्ट के साथ है – इस तरह, कोई रीडायरेक्ट जरूरी नहीं है – आप एक कुकी लिख सकते हैं और इसे वापस तुरंत पढ़ सकते हैं यह देखने के लिए कि क्या उसे संग्रहीत किया गया था और फिर पुनर्प्राप्त किया गया था। इसका नकारात्मक पक्ष यह क्लाइंट की तरफ स्क्रिप्ट में चलता है – यानी अगर आप अभी भी इस बारे में संदेश चाहते हैं कि कुकीज़ सर्वर पर वापस लाने के लिए समर्थित हैं या नहीं, तो आपको उसे व्यवस्थित करना होगा – जैसे कि एक अजाक्स कॉल के साथ।

अपने स्वयं के आवेदन के लिए, मैं लॉग-इन सीएसआरएफ हमलों, सीआरआरएफ हमलों का एक रूप, उपयोगकर्ता द्वारा प्रवेश करने से पहले लॉगिन स्क्रीन पर एक यादृच्छिक टोकन वाली एक कुकी सेट करके, और उस टोकन को जांचने के लिए कुछ सुरक्षा लागू करता है जब उपयोगकर्ता अपना लॉगिन सबमिट करता है विवरण। Google से लॉग इन सीएसआरएफ के बारे में अधिक पढ़ें इसका एक साइड इफेक्ट यह है कि जब वे लॉग इन करते हैं, तो मैं उस कुकी के अस्तित्व की जांच कर सकता हूं – एक अतिरिक्त पुनर्निर्देशन आवश्यक नहीं है

मैं हमेशा इसका प्रयोग करता था:

 navigator.cookieEnabled 

W3schools के अनुसार "कुकी प्रमुख संपत्ति सभी प्रमुख ब्राउज़रों में समर्थित है।"

हालांकि, यह मेरे लिए काम करता है जब मैं फ़ॉर्म का उपयोग कर रहा हूं, जहां मैं अतिरिक्त जानकारी भेजने के लिए ब्राउज़र को निर्देश दे सकता हूं।

आम तौर पर, आपको कुकी समर्थन के लिए साइट पर कुछ कार्रवाई करने के बाद केवल एक लॉगिन फॉर्म सबमिट करने, उनके कार्ट में कोई आइटम जोड़ना, और इसी तरह की आवश्यकता हो सकती है

मेरे लिए वर्तमान में, कुकी समर्थन की जांच सीएसआरएफ (क्रॉस-साइट अनुरोध जालसाजी) की रोकथाम के साथ हाथ में हाथ होती है।

आपको सीएसआरएफ के बारे में और अधिक जानने के लिए कहीं और जाना चाहिए, लेकिन इसके पीछे का विचार यह है कि अन्य साइटें छल-छिपी हो सकती हैं या आपके उपयोगकर्ताओं को अपनी स्वयं की साइट के चयन के छिपे हुए फार्म को जमा कर सकते हैं। इसके आस-पास का तरीका कुकी को सेट करना है जब व्यूअर किसी फॉर्म को देखता है, और एक छिपी हुए तत्व के रूप में एक मिलान टोकन सेट करता है, और फिर फॉर्म पर प्रोसेस करने पर, चेक करें कि दोनों कुकी और छिपे हुए फार्म तत्व सेट और एक दूसरे से मेल खाते हैं यदि यह सीएसआरएफ हमले का प्रयास है, तो साइट उपयोगकर्ता की कुकी से मिलान करने के लिए छिपी हुई फ़ील्ड प्रदान करने में सक्षम नहीं होगी, क्योंकि उपयोगकर्ता की कुकी समान-मूल नीति के तहत उनके लिए पठनीय नहीं होगी।

यदि एक फॉर्म को कोई कुकी नहीं जमा कर दिया जाता है, लेकिन इसमें एक वैध दिखने वाले टोकन होते हैं, तो आप इस निष्कर्ष निकाल सकते हैं कि उपयोगकर्ता ने कुकीज़ को अक्षम कर दिया है और यह संदेश दिखाया है कि उपयोगकर्ता को कुकीज को सक्षम करना और पुन: प्रयास करना चाहिए। दूसरी संभावना यह है कि उपयोगकर्ता सीएसआरएफ हमले के प्रयास का शिकार है। इसलिए उपयोगकर्ता को अवरुद्ध करना जब कुकी का मिलान नहीं होता है तो उस हमले को रोकने के पक्ष प्रभाव भी होंगे।

किसी चीज़ को किसी कुकी में संग्रहीत करने की कोशिश करें, और फिर इसे पढ़ें। यदि आप जो उम्मीद नहीं करते हैं, तो कुकीज़ संभवतः अक्षम हैं

यह कोड जांचें, यह आपकी मदद करेगा

 <?php session_start(); function visitor_is_enable_cookie() { $cn = 'cookie_is_enabled'; if (isset($_COOKIE[$cn])) return true; elseif (isset($_SESSION[$cn]) && $_SESSION[$cn] === false) return false; // saving cookie ... and after it we have to redirect to get this setcookie($cn, '1'); // redirect to get the cookie if(!isset($_GET['nocookie'])) header("location: ".$_SERVER['REQUEST_URI'].'?nocookie') ; // cookie isn't availble $_SESSION[$cn] = false; return false; } var_dump(visitor_is_enable_cookie()); 

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

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

यदि आप केवल यह देखना चाहते हैं कि सत्र कुकीज़ (सत्र जो जीवन भर सत्र के लिए मौजूद हैं) सक्षम हैं, तो अपने सत्र मोड को अपने web.config फ़ाइल में स्वत: पता लगाने के लिए सेट करें, तब एएसपी.नेट ढांचे क्लाइंट ब्राउज़र में एक कुकी लिखेंगे AspxAutoDetectCookieSupport कहा जाता है आप बाद में अनुरोध में इस कुकी को देख सकते हैं। कूकीज़ संग्रह यह देखने के लिए कि ग्राहक पर सत्र कुकीज़ सक्षम हैं या नहीं।

आपकी वेब। कॉन्फिग फ़ाइल सेट में उदाहरण:

 <sessionState cookieless="AutoDetect" /> 

तो जांच लें कि क्या क्लाइंट पर कुकीज़ सक्षम हैं:

 if (Request.Cookies["AspxAutoDetectCookieSupport"] != null) { ... } 

सिडेनोट: डिफ़ॉल्ट रूप से यह UseDeviceProfile पर सेट है, जो क्लाइंट को कुकीज लिखने का प्रयास करेगा, जब तक कि क्लाइंट उनको समर्थन न करे , भले ही कुकीज़ अक्षम हों मुझे यह थोड़ा अजीब लगता है कि यह डिफ़ॉल्ट विकल्प है क्योंकि यह व्यर्थ की तरह दिखता है – सत्र, ग्राहक के ब्राउज़र में अक्षम किए गए कुकीज़ के साथ काम नहीं करेगा, इसके साथ ही UseDeviceProfile पर सेट होगा, और अगर आप उन कुकीज का समर्थन करते हैं जो कुकीज़ का समर्थन नहीं करते हैं , तो उन ग्राहकों के लिए स्वत: खोज और समर्थन कुकीय मोड का उपयोग क्यों न करें …

मैं उपरोक्त "balexandre" के उत्तर के एक और अधिक सरल संस्करण का उपयोग कर रहा हूं यह सेट करने की कोशिश करता है, और यह निर्धारित करने की एकमात्र उद्देश्य के लिए एक सत्र कुकी पढ़ता है कि क्या कुकी सक्षम हैं। और हां, यह आवश्यक है कि जावास्क्रिप्ट को भी सक्षम किया गया है। इसलिए अगर आप को एक की देखभाल है तो आप वहां एक टैग चाहते हैं

 <script> // Cookie detection document.cookie = "testing=cookies_enabled; path=/"; if(document.cookie.indexOf("testing=cookies_enabled") < 0) { // however you want to handle if cookies are disabled alert("Cookies disabled"); } </script> <noscript> <!-- However you like handling your no JavaScript message --> <h1>This site requires JavaScript.</h1> </noscript> 

cookieEnabled संपत्ति एक बूलियन मान देता है जो निर्दिष्ट करता है कि ब्राउज़र में कुकीज़ सक्षम हैं या नहीं

 <script> if (navigator.cookieEnabled) { // Cookies are enabled } else { // Cookies are disabled } </script> 

नेविगेटर का उपयोग करें। कुकीज सक्षम कुकीज़ के लिए सक्रिय (यह झूठी वास्तविकता वापस करेगा) और एचटीएमएल टैग नोस्क्रिप्ट जिस तरह से नेविगेटर.cookieEnabled जावास्क्रिप्ट है, इसलिए इसे HTML के रूप में टाइप न करें

 <?php session_start(); if(SID!=null){ echo "Please enable cookie"; } ?>