Chrome tidak menghapus cookie sesi

188

Saya mencoba mengatur cookie sesi dalam javascript seperti ini:

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

Tetapi Chrome tidak menghapusnya bahkan jika saya keluar dari browser dan meluncurkannya lagi.

Saya memeriksa Firefox dan Opera dan keduanya berfungsi sebagaimana mestinya - mereka menghapus cookie sesi saat keluar dari browser.

Apakah Chrome mengabaikan aturan kedaluwarsa?

Saya memeriksa beberapa OS dan menemukan bahwa cookie sesi dihapus di Chrome di Windows XP dan Ubuntu, tetapi BUKAN di Mac OSX Lion.

mgs
sumber
1
Itu persis seperti di posting saya yaitu tanpa kedaluwarsa, tidak yakin tentang Httponly. Saya tidak mencoba menghapusnya dengan tangan. Masalahnya adalah browser harus menghapusnya saat keluar tetapi Chrome tidak melakukannya.
mg
>>> dan mengetahui bahwa cookie sesi dihapus di Chrome di Windows XP. Tidak. Di Windows XP Chrome juga tidak menghapus cookie. Saya menggunakan sekarang Windows XP dan telah menemukan pertanyaan Anda karena punya masalah yang sama. Satu-satunya perbedaan adalah bahwa saya menggunakan ZF2 dan mengatur opsi sesi melalui paket Sesi. Tapi itu cara php biasa - ini_set("session.cookie_lifetime", 0)dan 'remember_me_seconds' => 1. Tetapi tidak membantu. Firefox berfungsi dengan baik, tetapi Chrome tidak.
Hijau

Jawaban:

222

Ini dapat disebabkan oleh Chrome yang disetel ke Lanjutkan di tempat Anda sebelumnya .

masukkan deskripsi gambar di sini

Bacaan lebih lanjut

Jesper
sumber
3
Dan saya mencoba memformat komentar saya dengan baik dengan linebreak, tetapi sistem bodoh menghapus jeda baris itu juga ... Ayo, Stackoverflow, buat sistem yang lebih baik! Saya menghabiskan waktu untuk membuat komentar saya dapat dibaca, menjadi lebih bermanfaat bagi para pembaca, dan kemudian Anda merusaknya dengan percaya bahwa saya adalah seorang spammer dan kemudian dengan menghapus jeda baris!
Jesper
2
Catatan: Anda dapat menemukan masalah yang sama persis di Firefox jika Anda memiliki pilihan "Perlihatkan jendela dan tab saya dari waktu lalu" untuk pull-down "Saat Firefox dimulai" pada opsi. Untuk alasan yang sama. Sesuai desain, cookie sesi dipertahankan untuk membantu menjaga alur kerja jika terjadi kerusakan browser.
webnesto
40
Ya. Chrome dan FF keduanya memecah fungsionalitas cookie sesi karena ini. Untuk chrome, masalah telah dilaporkan: code.google.com/p/chromium/issues/detail?id=128513 dan ditandai WONTFIX. Jadi jelas, Google tidak peduli tentang mengikuti standar web dan lubang keamanan di Chrome dan FF juga tidak. Lihat bug FF (paling tidak tidak ditutup): bugzilla.mozilla.org/show_bug.cgi?id=443354 Keadaan yang menyedihkan untuk kedua browser ini.
lucian303
4
w3.org/Protocols/rfc2109/rfc2109 : Max-AgeTingkah laku default adalah membuang cookie ketika agen pengguna keluar.
lucian303
2
@ lucian303, walaupun ini terlihat seperti pelanggaran standar, saya rasa Anda tidak dapat "melanjutkan menjelajah dari waktu lalu" tanpa "menjaga cookie sesi tetap hidup". Opera, rekonq, dan IE9 (melalui tautan "Buka kembali sesi terakhir" di halaman Tab Baru), misalnya, laksanakan yang pertama tanpa yang terakhir. Akibatnya, peramban tersebut dapat menunjukkan kepada Anda halaman dalam tembolok yang salah mengindikasikan bahwa Anda masih masuk dan / atau telah memasang token perlindungan CSRF.
sayap
25

Saya hanya memiliki masalah yang sama dengan cookie yang ditetapkan akan kedaluwarsa pada "Penjelajahan sesi akhir".

Sayangnya tidak jadi saya bermain sedikit dengan pengaturan browser.

Ternyata fitur yang mengingat tab yang dibuka saat browser ditutup adalah akar masalahnya. (Fitur ini dinamai "Saat memulai" - "Lanjutkan di tempat saya tinggalkan". Setidaknya pada versi Chrome saat ini).

Ini juga terjadi dengan Opera dan Firefox.

Nikola Kolev
sumber
Ini langsung memecahkan masalah bagi saya! Senang mengetahui mengapa hal-hal terjadi seperti yang mereka lakukan :)
refleks cepat
5
Tidak bisa diterima Saya tidak ingin Chrome melupakan jendela yang terbuka, karena saya terlalu sering keluar dari Chrome tanpa sengaja dengan banyak tab terbuka. (Terima kasih OS X karena telah mengizinkan saya menggulir jendela yang tidak memiliki fokus, membuat saya berpikir itu TIDAK memiliki fokus. Tapi, cerita yang berbeda). Jika saya harus masuk kembali, biarlah. Untuk tidak mengeluarkan saya ketika saya berhenti dengan sengaja membuatnya sulit untuk memastikan saya belum masuk ke mana pun, yang bisa menjadi masalah keamanan BESAR.
Michael
5
Setidaknya opsi ini tidak diaktifkan secara default. "Fitur" ini juga disebutkan dalam Bantuan Google : "Chrome juga akan mengembalikan data penelusuran dan cookie sesi Anda. " IMO ini harus menjadi sub-opsi tambahan di bawah "Lanjutkan di mana saya tinggalkan".
MrWhite
Kebetulan ini sepertinya tidak menjadi "masalah" dengan Opera lagi (diuji Opera 22, meskipun saya tidak melihat itu menjadi masalah untuk setidaknya satu atau dua versi). Firefox 29 mengembalikan cookie sesi ketika "Perlihatkan jendela dan tab saya dari terakhir kali" dicentang (sesuai dokumentasi).
MrWhite
2
@Michael Yang tidak masuk akal karena sebagian besar situs web yang menggunakan sesi tidak akan memungkinkan Anda kembali ke halaman sebelumnya jika Anda sudah keluar. Jadi, apakah Anda ingin browser untuk melanjutkan di mana Anda tinggalkan atau tidak?
Deji
21

Saya baru saja mengalami masalah ini. Saya perhatikan bahwa bahkan setelah saya menutup browser saya, banyak proses Chrome yang berjalan. Ternyata masing-masing dari ekstensi Chrome saya.

Di bawah pengaturan lanjutan, saya tidak dicentang 'Continue running background apps when Google Chrome is closed'dan cookie sesi saya mulai berfungsi sebagaimana mestinya.

Masih merepotkan bagi kita semua pengembang yang telah mengkode berharap cookie sesi akan dihapus ketika pengguna selesai menjelajah.

NSjonas
sumber
Biasanya "aplikasi latar belakang" tidak ada hubungannya dengan kegigihan cookie sesi (kecuali mungkin Anda memiliki ekstensi yang mengingat cookie sesi Anda ?!). Opsi "Lanjutkan di mana saya tinggalkan" dalam pengaturan juga mengembalikan cookie sesi (sebagaimana disebutkan dalam jawaban lain).
MrWhite
1
Ini berfungsi, setelah saya menonaktifkan opsi itu saya menghapus cookie sesi saya!
Walid Ammar
Ini memang alasan lain yang menyebabkan cookie sesi tidak dihapus. Terima kasih.
L-Four
10

Ini mungkin karena Chrome masih berjalan di latar belakang setelah Anda menutup browser. Coba nonaktifkan fitur ini dengan melakukan hal berikut:

  1. Buka chrome: // pengaturan /
  2. Klik "Tampilkan pengaturan lanjutan ..."
  3. Arahkan ke bagian Sistem dan nonaktifkan "Lanjutkan menjalankan aplikasi latar belakang ketika Google Chrome ditutup". Ini akan memaksa Chrome untuk menutup sepenuhnya dan kemudian akan menghapus cookie sesi.

Namun, saya pikir Chrome harus memeriksa dan menghapus cookie sesi sebelumnya saat memulai, bukannya menutup.

Justmyhobby
sumber
10

Saya harus keduanya, tidak dicentang, di bawah pengaturan lanjutan Chrome:

  • 'Lanjutkan menjalankan aplikasi latar belakang ketika Google Chrome ditutup'
  • "Lanjutkan di tempat saya tinggalkan", "Saat memulai"
emottet
sumber
Ini harus dinilai lebih tinggi, atau jawaban teratas harus diedit untuk memasukkan titik "menjalankan aplikasi latar belakang". Ini memengaruhi saya. Mematikan "Lanjutkan di mana saya tinggalkan" tidak memperbaikinya. Saya juga harus mematikan "Lanjutkan menjalankan aplikasi latar belakang ketika Google Chrome ditutup". Kemudian, cookie sesi saya dihapus dengan benar ketika saya menutup Chrome.
Matt Welke
Saya pikir ini memang jawaban terbaik.
L-Four
3

Alternatif sederhana adalah dengan menggunakan objek sessionStorage baru . Per komentar, jika Anda telah 'melanjutkan di mana saya tinggalkan' diperiksa, sessionStorage akan bertahan di antara restart.

TimDog
sumber
9
Tidak, itu tetap ada di antara restart, jika Anda memiliki "Lanjutkan di mana saya tinggalkan" diperiksa.
Olli
TimDog: "sessionStorage akan bertahan di antara restart.", @Olli "Tidak, itu tetap ada di antara restart". Kawan, apakah Anda setuju atau berdebat? Saya tidak mengerti :) Ah, tunggu, saya mengerti ...
naXa
2

Saya memiliki masalah yang sama dengan "document.cookie" di Windows 8.1, satu-satunya cara Chrome menghapus cookie adalah mematikannya dari task manager (bukan cara yang benar-benar mewah), jadi saya memutuskan untuk mengelola cookie dari backend atau menggunakan sesuatu seperti "js-cookie".

TurKux
sumber
1

Sudahkah Anda mencoba untuk menghapus ekstensi hangout di Google Chrome? karena itu memaksa chrome untuk tetap berjalan walaupun Anda menutup semua jendela.

Saya juga menghadapi masalah tetapi itu terselesaikan sekarang.

Salman Ali Khan
sumber
1

Pergi ke chrome://settings/content/cookies?search=cookies

Memungkinkan Clear cookies and site data when you quit Chrome .

Bekerja untukku

Mihai Perju
sumber
-2

Jika Anda mengatur domain untuk cookie sesi php, browser tampaknya bertahan selama 30 detik atau lebih. Tampaknya tidak masalah jika Anda menutup tab atau jendela browser.

Jadi jika Anda mengelola sesi menggunakan sesuatu seperti yang berikut ini mungkin menyebabkan cookie menggantung di browser lebih lama dari yang diharapkan.

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

Satu-satunya cara yang saya temukan untuk menyingkirkan cookie gantung adalah dengan menghapus baris kode yang menetapkan domain cookie sesi. Juga perhatikan fungsi session_set_cookie_params (). Dot yang mengawali domain tampaknya juga tidak ada hubungannya dengan masalah ini.

Ini mungkin bug php karena php mengirim cookie sesi (yaitu PHPSESSID=b855ed53d007a42a1d0d798d958e42c9) di header setelah sesi dihancurkan. Atau mungkin masalah propagasi server tetapi saya tidak berpikir begitu karena pengujian saya di server pribadi.

SurferJoe
sumber
-2

Saya baru saja mengalami masalah ini ketika Chrome menyimpan ID Sesi tetapi saya tidak suka gagasan menonaktifkan opsi untuk melanjutkan di mana saya tinggalkan. Saya melihat cookie untuk situs web dan menemukan cookie ID Sesi untuk halaman login. Menghapus itu tidak memperbaiki masalah saya. Saya mencari domain dan menemukan ada cookie ID Sesi lain di domain. Menghapus kedua cookie Sesi ID secara manual memperbaiki masalah dan saya tidak menutup dan membuka kembali browser yang bisa memulihkan cookie.

Lauren Tariel
sumber
-8

Google chrome memiliki masalah jika Anda mengatur dan menghapus cookie dengan cara yang tidak benar. Ini adalah kode php. Kupikir ini akan memberimu ide.

Tetapkan cookie

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

Cara yang salah dan tidak akan berfungsi (perhatikan PATH tidak ada)

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

Cara yang benar memperbaiki masalah di google chrome

setcookie('userLoggedIn', 0, time()-3600, PATH);
Akash Thapa
sumber
1
Pertanyaannya bukan tentang cookie yang tidak tepat.
John K