Chrome सत्र कुकी नहीं हटाता है


188

मैं इस तरह से जावास्क्रिप्ट में सत्र कुकी सेट करने की कोशिश कर रहा हूं:

document.cookie = 'name=alex; path=/'

लेकिन अगर मैंने ब्राउज़र छोड़ दिया और इसे फिर से लॉन्च किया, तो भी क्रोम इसे हटाता नहीं है।

मैंने फ़ायरफ़ॉक्स और ओपेरा में जाँच की और दोनों ही इरादा के अनुसार काम करते हैं - वे ब्राउज़र निकास पर सत्र कुकी हटाते हैं।

क्या क्रोम सिर्फ समाप्ति नियमों की अनदेखी कर रहा है?

मैंने कई OSes में जाँच की और पाया कि सत्र कुकी Windows XP और Ubuntu में क्रोम पर हटा दी जाती है, लेकिन मैक OSX शेर में नहीं।


1
यह मेरी पोस्ट के समान ही था अर्थात समाप्ति के बिना, Httponly के बारे में निश्चित नहीं। मैं इसे हाथ से हटाने की कोशिश नहीं कर रहा हूं। समस्या यह है कि ब्राउज़र को इसे बाहर निकलने पर हटा देना चाहिए लेकिन क्रोम अभी ऐसा नहीं करता है।
MGS

>>> और पता चला कि सत्र कुकी विंडोज एक्सपी में क्रोम पर हटा दी जाती है। विंडोज एक्सपी क्रोम में कुकी को भी डिलीट नहीं किया जाता है। मैं अब Windows XP का उपयोग करता हूं और आपके प्रश्न को पाया है क्योंकि उसी समस्या को मिला है। एकमात्र अंतर यह है कि मैं ZF2 का उपयोग करता हूं और सत्र पैकेज के माध्यम से सत्र विकल्प सेट करता हूं। लेकिन यह वैसे भी सामान्य php तरीका है - ini_set("session.cookie_lifetime", 0)और 'remember_me_seconds' => 1। लेकिन मदद नहीं करता है। फ़ायरफ़ॉक्स ठीक काम करता है, लेकिन क्रोम नहीं करता है।
ग्रीन

जवाबों:


222

3
और मैंने अपनी टिप्पणी को लाइनब्रेक के साथ अच्छी तरह से प्रारूपित करने की कोशिश की, लेकिन मूर्खतापूर्ण प्रणाली ने उन रेखाओं को भी हटा दिया ... आओ, स्टैकओवरफ़्लो, एक बेहतर प्रणाली बनाएं! मैं अपनी टिप्पणियों को पठनीय बनाने के लिए, पाठकों के लिए अतिरिक्त मददगार होने के लिए समय बिता रहा हूं, और फिर आप मूर्खतापूर्ण विश्वास करके मुझे बर्बाद कर देते हैं कि मैं एक स्पैमर हूं और फिर लाइन ब्रेक हटाकर!
जेस्पर

2
नोट: आप फ़ायरफ़ॉक्स में ठीक उसी मुद्दे का सामना कर सकते हैं यदि आपके पास "जब फ़ायरफ़ॉक्स शुरू होता है" विकल्पों में पुलडाउन के लिए "पिछली बार से मेरी खिड़कियां और टैब दिखाएं"। एक ही कारण के लिए। डिजाइन द्वारा, सत्र कुकीज़ को ब्राउज़र क्रैश की स्थिति में वर्कफ़्लो रखने में मदद करने के लिए बनाए रखा जा रहा है।
वेबनेस्टो

40
हाँ। क्रोम और FF इस वजह से सत्र कुकी कार्यक्षमता को तोड़ते हैं। क्रोम के लिए, इस मुद्दे की सूचना दी गई है: code.google.com/p/chromium/issues/detail?id=128513 और चिह्नित WONTFIX। तो जाहिर है, Google Chrome में वेब मानकों और सुरक्षा छिद्रों के बारे में af *** नहीं देता है और न ही FF करता है। FF बग देखें (कम से कम बंद नहीं): Bugzilla.mozilla.org/show_bug.cgi?id=443354 इन दो ब्राउज़रों के लिए क्या दुखद स्थिति है।
lucian303

4
w3.org/Protocols/rfc2109/rfc2109 : अधिकतम-आयु उपयोगकर्ता एजेंट के बाहर निकलने पर डिफ़ॉल्ट व्यवहार को कुकी को छोड़ देना है।
lucian303

2
@ lucian303, जबकि यह मानकों के उल्लंघन की तरह दिखता है, मुझे नहीं लगता कि आप "अंतिम समय से ब्राउज़िंग जारी रख सकते हैं" बिना "सत्र कुकी को जीवित रखते हुए"। ओपेरा, रेकोनक और आईई 9 (न्यू टैब पेज में "फिर से खोलें आखिरी सत्र" लिंक के माध्यम से), उदाहरण के लिए, बाद वाले के बिना पूर्व को लागू करें। नतीजतन, ऐसे ब्राउज़र आपको कैश्ड पृष्ठ दिखा सकते हैं जो गलत संकेत देते हैं कि आप अभी भी लॉग इन हैं और / या सीएसआरएफ सुरक्षा टोकन को रोक दिया है।
Sayap

25

मुझे बस एक कुकी के साथ एक ही समस्या थी जो "ब्राउज़िंग सत्र समाप्ति" पर समाप्त होने के लिए तैयार थी।

दुर्भाग्य से ऐसा नहीं हुआ, इसलिए मैंने ब्राउज़र की सेटिंग्स के साथ थोड़ा सा खेला।

यह पता चला कि ब्राउज़र बंद होने पर खोले गए टैब को याद रखने वाला फीचर समस्या की जड़ था। (फीचर का नाम "ऑन स्टार्टअप" है - "जारी रखें जहां मैंने छोड़ा था" कम से कम क्रोम के वर्तमान संस्करण पर)।

यह ओपेरा और फ़ायरफ़ॉक्स के साथ भी होता है।


यह मेरे लिए सीधे मुद्दे को हल कर दिया! यह जानकर अच्छा लगा कि चीजें क्यों होती हैं:
फास्ट-रिफ्लेक्स

5
गवारा नहीं। मैं नहीं चाहता कि क्रोम भूल जाए कि कौन सी खिड़कियाँ खुली थीं, क्योंकि मैं भी बहुत बार अकस्मात ही क्रोम को बहुत सारे टैब खोलकर छोड़ देता हूँ। (मुझे धन्यवाद करने के लिए एक विंडो स्क्रॉल करने के लिए OS X धन्यवाद जिसमें फोकस नहीं है, जिससे मुझे लगता है कि यह फोकस है। लेकिन, अलग कहानी)। अगर मुझे वापस लॉग इन करना है, तो ऐसा हो। जब मैं जानबूझकर छोड़ देता हूं तो मुझे लॉग आउट न करने के लिए यह सुनिश्चित करना मुश्किल हो जाता है कि मैं अभी भी कहीं भी लॉग इन नहीं हूं, जो कि एक बड़ा सुरक्षा मुद्दा हो सकता है।
माइकल

5
कम से कम यह विकल्प डिफ़ॉल्ट रूप से सक्षम नहीं है। यह "सुविधा" Google सहायता में भी वर्णित है : "क्रोम आपके ब्राउज़िंग डेटा और सत्र कुकीज़ को भी पुनर्स्थापित करेगा " IMO यह "जारी रखें जहां मैंने छोड़ा था" के तहत एक अतिरिक्त उप-विकल्प होना चाहिए।
MrWhite

संयोग से यह ओपेरा के साथ अब एक "समस्या" नहीं लगती है (ओपेरा 22 का परीक्षण किया गया है, हालांकि मैंने देखा है कि यह कम से कम एक संस्करण या दो के लिए एक मुद्दा नहीं है)। फ़ायरफ़ॉक्स 29 सत्र कुकीज़ को पुनर्स्थापित करता है जब संबंधित "पिछली बार से मेरी खिड़कियां और टैब दिखाएं" (प्रलेखन के अनुसार) की जांच की जाती है।
Mrhhite

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

21

मेरा बस यही मुद्दा था। मैंने देखा कि अपने ब्राउज़र को बंद करने के बाद भी मेरे पास कई क्रोम प्रक्रियाएं चल रही थीं। इनमें से प्रत्येक मेरे क्रोम एक्सटेंशन से थे।

उन्नत सेटिंग्स के तहत मैं अनियंत्रित हो गया 'Continue running background apps when Google Chrome is closed'और मेरे सत्र कुकीज़ ने काम करना शुरू कर दिया जैसा कि उन्हें करना चाहिए।

फिर भी हम सभी डेवलपर्स के लिए रियर में एक दर्द है जो यह उम्मीद कर रहा है कि उपयोगकर्ता कुकीज़ ब्राउज़ करते समय सत्र कुकीज़ को मंजूरी दे देगा।


आमतौर पर "बैकग्राउंड एप्स" का सत्र कुकी दृढ़ता से कोई लेना-देना नहीं है (जब तक कि शायद आपके पास कोई एक्सटेंशन नहीं है जो आपके सत्र कुकीज़ को याद कर रहा है?)। सेटिंग्स में "जारी रखें जहां मैंने छोड़ दिया" विकल्प सत्र कुकीज़ को भी पुनर्स्थापित करता है (जैसा कि किसी अन्य उत्तर में उल्लेख किया गया है)।
MrWhite

1
यह काम करने के बाद, मैंने उस विकल्प को निष्क्रिय कर दिया, जिससे मुझे अपना सत्र कुकीज़ साफ़ हो गया!
वालिद अम्मार

यह वास्तव में एक और कारण है जो सत्र कुकीज़ को नष्ट नहीं करने का कारण बनता है। धन्यवाद।
एल-फोर

10

ऐसा शायद इसलिए क्योंकि ब्राउज़र बंद करने के बाद भी क्रोम बैकग्राउंड में चल रहा है। निम्नलिखित करके इस सुविधा को अक्षम करने का प्रयास करें:

  1. ओपन क्रोम: // सेटिंग्स /
  2. "उन्नत सेटिंग दिखाएं ..." पर क्लिक करें
  3. सिस्टम सेक्शन पर जाएं और "Google Chrome बंद होने पर बैकग्राउंड ऐप्स जारी रखें" को अक्षम करें। यह क्रोम को पूरी तरह से बंद करने के लिए मजबूर करेगा और फिर यह सत्र कुकीज़ को हटा देगा।

हालाँकि, मुझे लगता है कि क्रोम को पिछले सत्र के कुकीज़ को बंद करने के बजाय शुरू करने की जाँच करनी चाहिए।


10

मुझे क्रोम की उन्नत सेटिंग्स के तहत, अनियंत्रित, दोनों करना पड़ा:

  • Google Chrome बंद होने पर पृष्ठभूमि एप्लिकेशन जारी रखें '
  • "जारी रखें जहां मैंने छोड़ा था", "स्टार्टअप पर"

इसे उच्च वोट दिया जाना चाहिए, या "चल रहे पृष्ठभूमि एप्लिकेशन" बिंदु को शामिल करने के लिए शीर्ष उत्तर को संपादित किया जाना चाहिए। इसने मुझे प्रभावित किया। "जारी रखें जहां मैंने छोड़ दिया है" इसे ठीक नहीं किया। मुझे Google Chrome के बंद होने पर "बैकग्राउंड रन करना जारी रखें" भी बंद करना पड़ा। तब, जब मैंने Chrome को बंद किया था, तो मेरे सत्र कुकीज़ को ठीक से हटाया जा रहा था।
मैट वेल्के

मुझे लगता है कि यह वास्तव में सबसे अच्छा जवाब है।
एल-फोर

3

एक सरल विकल्प नए सेशनस्टोर ऑब्जेक्ट का उपयोग करना है । टिप्पणियों के अनुसार, यदि आपने 'जारी रखा है जहां मैंने छोड़ दिया है' की जाँच की, सेशनस्टोरेज पुनरारंभ के बीच जारी रहेगा।


9
नहीं, यह पुनरारंभ के बीच बनी रहती है, अगर आपके पास "जारी रखें जहां मैंने छोड़ दिया है" की जाँच की।
ओली

TimDog: "sessionStorage पुनरारंभ के बीच बनी रहेगी।", @Olli "नहीं, यह पुनरारंभ के बीच बनी रहती है"। दोस्तों, क्या आप सहमत हैं या बहस करते हैं? मुझे समझ नहीं आ रहा है :) आह, रुको, मैं समझ गया ...
naXa

2

मुझे विंडोज 8.1 में "डॉक्यूमेंट.कोकी" के साथ एक ही समस्या थी, क्रोम को हटाने वाला एकमात्र तरीका इसे टास्क मैनेजर से बंद कर रहा था (वास्तव में फैंसी तरीका नहीं), इसलिए मैंने बैकेंड से कुकीज़ का प्रबंधन करने या कुछ का उपयोग करने का फैसला किया जैसे "जेएस-कुकी"।


1

क्या आपने Google Chrome में हैंगआउट एक्सटेंशन निकालने का प्रयास किया है? क्योंकि यह क्रोम को चलाने के लिए मजबूर करता है यहाँ तक कि आप सभी विंडो को बंद भी करते हैं।

मैं भी समस्या का सामना कर रहा था, लेकिन यह अब हल हो गया।


1

के लिए जाओ chrome://settings/content/cookies?search=cookies

सक्षम करें Clear cookies and site data when you quit Chrome

मेरे लिए काम किया


-2

यदि आप php सेशन कुकी के लिए डोमेन सेट करते हैं, तो ब्राउज़र इसे 30 सेकंड या इसके लिए होल्ड करता है। यदि आप टैब या ब्राउज़र विंडो को बंद करते हैं तो यह कोई मायने नहीं रखता है।

इसलिए यदि आप सत्र का प्रबंधन कुछ इस तरह से कर रहे हैं, तो इससे कुकी ब्राउज़र में अधिक समय तक लटका रह सकता है।

ini_set("session.cookie_domain", 'www.domain.com');

एक ही तरीका है कि मुझे फांसी कुकी से छुटकारा पाने के लिए सत्र कुकी की डोमेन को निकालने वाली कोड की लाइन को निकालना है। साथ ही session_set_cookie_params () फ़ंक्शन के लिए देखें। डोमेन को प्रीफ़िक्स करने वाले डॉट को लगता है कि इस मुद्दे पर कोई असर नहीं है।

यह php बग हो सकता है क्योंकि php PHPSESSID=b855ed53d007a42a1d0d798d958e42c9सेशन के नष्ट होने के बाद हेडर में सेशन कुकी (यानी ) भेजता है । या यह एक सर्वर प्रसार मुद्दा हो सकता है लेकिन मुझे ऐसा नहीं लगता क्योंकि मेरा परीक्षण एक निजी सर्वर पर था।


-2

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



-8

अगर आपने कुकी को गलत तरीके से सेट और अनसेट किया है तो Google क्रोम में समस्या है। यह php कोड है। सोचा यह आपको विचार देगा।

कुकी सेट करें

setcookie('userLoggedIn', 1, 0, PATH);

गलत तरीका और काम नहीं करेगा (नोटिस पेटी गायब है)

setcookie('userLoggedIn', 0, time()-3600);

सही तरीका गूगल क्रोम पर समस्या को हल करता है

setcookie('userLoggedIn', 0, time()-3600, PATH);

1
प्रश्न अनुचित कुकी के बारे में नहीं है।
जॉन के।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.