Chrome, oturum çerezlerini silmez


188

Javascript böyle oturum çerez ayarlamak için çalışıyorum:

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

Ancak tarayıcıdan çıkıp tekrar başlatsam bile Chrome silmez.

Firefox ve Opera'da kontrol ettim ve her ikisi de istendiği gibi çalışıyor - tarayıcı çıkışında oturum çerezini siliyorlar.

Chrome yalnızca son kullanma kurallarını yoksayar mı?

Birden fazla OS'de kontrol ettim ve Windows XP ve Ubuntu'da oturum çerezinin kaldırıldığını öğrendim, ancak Mac OSX Lion'da DEĞİL.


1
Tam olarak benim yazımda olduğu gibi yani son kullanma olmadan, Httponly hakkında emin değilim. Elle silmeye çalışmıyorum. Sorun, tarayıcıların çıkışta silmesi gerekir, ancak Chrome bunu yapmaz.
mgs

>>> ve Windows XP'de oturum çerezinin Chrome'dan kaldırıldığını öğrendim. Hayır. Windows XP'de Chrome çerezleri de silmez. Şimdi Windows XP kullanıyorum ve aynı sorunu yaşadığından sorunuzu buldum. Tek fark ZF2 kullanmak ve oturum paketi aracılığıyla oturum seçenekleri ayarlamak olmasıdır. Ama yine de her zamanki php yolu - ini_set("session.cookie_lifetime", 0)ve 'remember_me_seconds' => 1. Ama yardımcı olmuyor. Firefox iyi çalışıyor, ancak Chrome çalışmıyor.
Yeşil

Yanıtlar:


222

3
Ve yorumumu çizgi satırlarıyla güzelce biçimlendirmeye çalıştım, ama aptal sistem bu satır sonlarını da kaldırdı ... Hadi, Stackoverflow, daha iyi bir sistem yap! Yorumlarımı okunabilir hale getirmek, okuyucular için ekstra yardımcı olmak için zaman harcıyorum ve sonra önce bir spamcı olduğuma inanarak ve sonra satır sonlarını kaldırarak onu mahvediyorsun!
Jesper

2
Not: Seçeneklerde "Firefox başladığında" açılan menüsü için "Pencerelerimi ve sekmelerimi son kez göster" seçimine sahipseniz Firefox'ta da aynı sorunla karşılaşabilirsiniz. Aynı sebepten. Tasarım gereği, bir tarayıcı çökmesi durumunda iş akışının korunmasına yardımcı olmak için oturum çerezleri tutulur.
webnesto

40
Evet. Chrome ve FF, bu nedenle oturum çerezi işlevlerini kırıyor. Chrome için sorun bildirildi: code.google.com/p/chromium/issues/detail?id=128513 ve WONTFIX olarak işaretlendi. Açıkçası Google, Chrome'daki web standartlarını ve güvenlik açıklarını takip etme konusunda da fena değil ve FF de yapmıyor. Bkz. FF hatası (en azından kapalı değil): bugzilla.mozilla.org/show_bug.cgi?id=443354 Bu iki tarayıcı için ne üzücü bir durum.
lucian303

4
w3.org/Protocols/rfc2109/rfc2109 : Maks-Yaş Varsayılan davranış, kullanıcı aracısı çıktığında çerezi atmaktır.
lucian303

2
@ lucian303, bu standartların ihlali gibi görünse de, "oturum çerezini canlı tutmadan" "son kez göz atmaya devam edebileceğinizi" sanmıyorum. Opera, rekonq ve IE9 (örneğin, Yeni Sekme sayfasındaki "Son oturumu yeniden aç" bağlantısı aracılığıyla), ilkini ikincisi olmadan uygulayın. Sonuç olarak, bu tür tarayıcılar size hala giriş yaptığınızı ve / veya CSRF koruma jetonunu durdurduğunuzu yanlış gösteren önbelleklenmiş sayfaları gösterebilir.
sayap

25

Ben sadece "Gözatma oturumu sonu" sona erecek şekilde ayarlanmış bir çerez ile aynı sorunu vardı.

Ne yazık ki bu yüzden tarayıcı ayarları ile biraz oynadım.

Tarayıcı kapatıldığında açılan sekmeleri hatırlayan özelliğin sorunun kaynağı olduğu ortaya çıktı. (Bu özellik "Başlangıçta" - "Kaldığım yerden devam et" olarak adlandırılır. En azından Chrome'un mevcut sürümünde).

Bu Opera ve Firefox'ta da olur.


Bu benim için sorunu hemen çözdü! İşlerin neden böyle olduğunu bilmek güzel :)
fast-refleksler

5
Kabul edilemez. Chrome'un hangi pencerelerin açık olduğunu unutmasını istemiyorum, çünkü yanlışlıkla çok sayıda sekme açıkken Chrome'dan sık sık çıkıyorum. (Odak olmayan bir pencereyi kaydırmama izin verdiğim için OS X'e teşekkürler, odaklandığını düşünmeme yol açıyor. Ama farklı bir hikaye). Eğer tekrar giriş yapmam gerekiyorsa, öyle olsun. Kasten istifa ettiğimde oturumu kapatmamak, hala herhangi bir yere giriş yapmadığımdan emin olmayı zorlaştırıyor, bu da BÜYÜK bir güvenlik sorunu olabilir.
Michael

5
En azından bu seçenek varsayılan olarak etkin değildir. Bu "özellik" Google Yardımı'nda da belirtilmiştir : "Chrome, tarama verilerinizi ve oturum çerezlerinizi de geri yükleyecektir . ". IMO bu "Kaldığım yerden devam et" altında ek bir alt seçenek olmalıdır.
MrWhite

Bu arada bu Opera ile artık bir "sorun" gibi görünmüyor (en azından bir ya da iki sürümü için bir sorun olduğunu fark etmedim, ancak Opera 22 test edilmiştir). Firefox 29, karşılık gelen "Pencerelerimi ve sekmelerimi son kez göster" seçeneği işaretlendiğinde oturum belgelerini geri yükler (belgelere göre).
MrWhite

2
@Michael Bu, oturumları kullanan çoğu web sitesinin oturumunuzu kapattıysanız bulunduğunuz sayfaya geri dönmenize izin vermediğinden pek mantıklı değildir. Peki tarayıcının kaldığınız yerden devam etmesini mi istiyorsunuz?
Deji

21

Sadece bu sorunu yaşadım. Tarayıcımı kapattıktan sonra bile birçok Chrome işlemimin çalıştığını fark ettim. Bunların her birinin Chrome uzantımdan olduğu anlaşılıyor.

Gelişmiş ayarlar altında işaretini kaldırdım 'Continue running background apps when Google Chrome is closed've oturum çerezlerim gerektiği gibi çalışmaya başladı.

Hala kullanıcı göz atma bittiğinde oturum çerezleri temizleneceğini bekliyor kodlayan tüm geliştiriciler için arkada bir acı.


Normalde "arka plan uygulamaları" nın oturum çerezi kalıcılığıyla ilgisi yoktur (belki oturum çerezlerinizi hatırlayan bir uzantınız yoksa ?!). Ayarlardaki "Kaldığım yerden devam et" seçeneği de oturum çerezlerini geri yükler (başka bir cevapta belirtildiği gibi).
MrWhite

1
Çalışıyor, bu seçeneği devre dışı bıraktıktan sonra oturum çerezlerimi temizledim!
Walid Ammar

Bu, oturum çerezlerinin silinmemesine neden olan başka bir nedendir. Teşekkürler.
L-Four

10

Bunun nedeni, tarayıcıyı kapattıktan sonra Chrome'un hala arka planda çalışması olabilir. Aşağıdakileri yaparak bu özelliği devre dışı bırakmayı deneyin:

  1. Chrome'u açın: // ayarlar /
  2. "Gelişmiş ayarları göster ..." seçeneğini tıklayın.
  3. Sistem bölümüne gidin ve "Google Chrome kapalıyken arka plan uygulamalarını çalıştırmaya devam et" seçeneğini devre dışı bırakın. Bu, Chrome'u tamamen kapanmaya zorlar ve ardından oturum çerezlerini siler.

Ancak, Chrome'un kapanış yerine önceki oturum çerezlerini kontrol etmesi ve silmesi gerektiğini düşünüyorum.


10

Chrome'un gelişmiş ayarları altında her ikisini de işaretlemedim:

  • 'Google Chrome kapalıyken arka plan uygulamalarını çalıştırmaya devam et'
  • "Kaldığım yerden devam et", "Başlangıçta"

Buna daha yüksek oy verilmeli veya en iyi yanıt "arka plan uygulamalarını çalıştırıyor" noktasını içerecek şekilde düzenlenmelidir. Bu beni etkiledi. "Kaldığım yerden devam et" seçeneğini kapatmak sorunu çözmedi. Ayrıca "Google Chrome kapalıyken arka plan uygulamalarını çalıştırmaya devam et" seçeneğini de kapatmak zorunda kaldım. Ardından, Chrome'u kapattığımda oturum çerezlerim düzgün bir şekilde siliniyordu.
Matt Welke

Bunun en iyi cevap olduğunu düşünüyorum.
L-Four

3

Basit bir alternatif yeni sessionStorage nesnesini kullanmaktır . Yorumlara göre, 'kaldığım yerden devam et' seçeneğini işaretlediyseniz, sessionStorage yeniden başlatmalar arasında kalır.


9
Hayır, "Kaldığım yerden devam et" seçeneğini işaretlediyseniz yeniden başlatmalar arasında kalır.
Olli

TimDog: "sessionStorage yeniden başlatmalar arasında kalır.", @Olli "Hayır, yeniden başlatmalar arasında kalır". Millet, katılıyor musun, tartışıyor musun? Anlamıyorum :) Ah, bekle, anladım ...
naXa

2

Windows 8.1'de "document.cookie" ile aynı sorunu yaşadım, Chrome'un çerezi silmesinin tek yolu görev yöneticisinden (gerçekten süslü bir şekilde değil) kapatmaktı, bu yüzden çerezleri arka uçtan yönetmeye veya bir şey kullanmaya karar verdim "js-cookie" gibi.


1

Google Chrome'da Hangout uzantısını kaldırmayı denediniz mi? çünkü tüm pencereleri kapatsanız bile kromu çalışmaya devam etmeye zorlar.

Ben de sorunla karşı karşıya kaldım ama şimdi çözüldü.


1

Adresine git chrome://settings/content/cookies?search=cookies

Etkinleştir Clear cookies and site data when you quit Chrome.

Benim için çalıştı


-2

Php oturumu çerezi için etki alanını ayarlarsanız, tarayıcılar 30 saniye kadar beklemiş gibi görünür. Sekmeyi veya tarayıcı penceresini kapatmanız önemli değildir.

Dolayısıyla, aşağıdaki gibi bir şey kullanarak oturumları yönetiyorsanız, çerezin tarayıcıda beklenenden daha uzun süre askıda kalmasına neden olabilir.

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

Asılı çerezden kurtulmak için bulduğum tek yol, oturum çerezinin etki alanını ayarlayan kod satırını kaldırmaktır. Ayrıca session_set_cookie_params () işlevine dikkat edin. Alanın önekini alan nokta da bu konuda bir etkiye sahip görünmüyor.

Php PHPSESSID=b855ed53d007a42a1d0d798d958e42c9, oturum yok edildikten sonra başlıkta bir oturum çerezi (ie ) gönderdiği için bu bir php hatası olabilir . Ya da bir sunucu yayılım sorunu olabilir ama benim test özel bir sunucu üzerinde olduğundan beri sanmıyorum.


-2

Chrome'un bir Oturum Kimliği depolamasıyla ilgili bu sorunu yaşadım, ancak kaldığım yerden devam etme seçeneğini devre dışı bırakma fikrinden hoşlanmıyorum. Web sitesinin çerezlerine baktım ve giriş sayfası için bir Oturum Kimliği çerezi buldum. Bunu silmek sorunumu düzeltmedi. Alan adını arıyorum ve alan adında başka bir Oturum Kimliği çerezi olduğunu gördüm. Oturum Kimliği çerezlerinin her ikisini de silmek sorunu çözdü ve çerezleri geri yükleyebilecek tarayıcıyı kapatıp yeniden açmadım.



-8

Çerezin yanlış bir şekilde ayarlanması ve ayarının kaldırılması durumunda Google Chrome'da bir sorun vardır. Bu php kodudur. Bunun size fikir vereceğini düşündüm.

Çerez ayarla

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

Yanlış yol ve çalışmaz (PATH eksik olduğuna dikkat edin)

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

Google Chrome'daki sorunu düzeltmenin doğru yolu

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

1
Soru, uygunsuz bir çerezle ilgili değildir.
John K
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.