Cookie sesi Firefox

105

Secara umum, ketika diberikan cookie yang tidak memiliki masa kedaluwarsa, browser modern akan menganggap cookie ini sebagai 'cookie sesi', mereka akan menghapus cookie di akhir sesi penjelajahan (umumnya saat browser ditutup).

IE, Opera, Safari, dan Chrome semuanya mendukung perilaku ini.

Namun firefox (rilis terbaru 3.0.9 yang benar) tampaknya tidak mengikuti aturan ini, dari apa yang saya tahu itu tidak akan mengakhiri cookie ketika browser ditutup, atau ketika pengguna log off atau restart OS ..

Jadi, mengapa firefox menyebut ini sebagai cookie sesi, ketika mereka bertahan tanpa batas waktu?

Adakah yang tahu bagaimana Firefox menangani kadaluwarsa cookie sesi?

meandmycode
sumber
1
Saya rasa ini tidak benar-benar terjawab. Saya melihat ini juga.
bhollis
Terima kasih BRH atas penelitian Anda, saya benar-benar melihat balasan Anda dan bermaksud memeriksa penelitian Anda sebelum menandai jawaban Anda, benar-benar lupa! maaf
meandmycode

Jawaban:

116

Ini tampaknya memang disengaja. Lihat bug Bugzilla ini: https://bugzilla.mozilla.org/show_bug.cgi?id=443354

Firefox memiliki fitur di mana Anda menutup Firefox dan menawarkan untuk menyimpan semua tab Anda, lalu Anda memulihkan browser dan tab tersebut kembali. Itu disebut pemulihan sesi. Apa yang tidak saya sadari adalah bahwa itu juga akan memulihkan semua cookie sesi untuk halaman-halaman itu juga! Ini memperlakukannya seperti Anda tidak pernah menutup browser.

Ini masuk akal dalam arti bahwa jika browser Anda rusak Anda langsung kembali ke tempat Anda sebelumnya, tetapi sedikit membingungkan untuk pengembang web yang terbiasa dengan cookie sesi dibersihkan. Saya mendapat beberapa cookie sesi lama dari bulan lalu yang ditetapkan oleh situs yang selalu saya buka di tab.

Untuk mengujinya, tutup semua tab di browser Anda, lalu tutup browser dan mulai ulang. Saya pikir cookie sesi untuk situs Anda harus dihapus dalam kasus itu. Jika tidak, Anda harus mematikan pemulihan sesi.

bhollis
sumber
1
Saya menemukan perilaku ini cukup dipertanyakan, terima kasih atas penelitian Anda. Jika "Simpan dan Keluar" dipilih atau "Pulihkan tab dan jendela", setelah menutup browser, semua cookie sesi tetap utuh. Satu-satunya cara bagi "pengguna" untuk menyingkirkannya adalah dengan menutup tab terlebih dahulu, lalu menutup browser.
tandai
Apakah Anda pernah menemukan solusi? Saya benar-benar tidak ingin Firefox menggali sesi lama karena saya memerlukan ID sesi di aplikasi saya agar unik.
ArjanP
Maaf, saya tidak tahu cara mengatasinya. Dari perspektif aplikasi Anda, browser mereka tidak pernah ditutup.
bhollis
6
Saya telah mencatat beberapa implikasi dari keputusan (keliru IMO) ini: mrclay.org/index.php/2010/05/02/…
Steve Clay
Saya digigit oleh perilaku ini hari ini juga. Saya pikir ada yang salah dengan aplikasi saya. Kemudian saya menguji Chrome, dan browser lain, lalu menemukan firefox pelakunya.
Dingle
5

Dua gagasan:

  1. Anda memiliki masalah dengan manajer sesi Anda (yang termasuk dalam FF3 atau yang termasuk dalam ekstensi, seperti tabmixplus)
  2. Gunakan Firebug + FireCookie ( https://addons.mozilla.org/en-US/firefox/addon/6683 ) untuk men-debug!
Untuk memetakan
sumber
3

Ini seharusnya berhasil. Saya dulunya adalah salah satu penguji modul cookie, dan menurut saya tidak ada alasan desain mengapa ini akan berperilaku berbeda (meskipun jika Anda mogok, cookie sesi mungkin dirancang untuk tetap aktif saat Anda memulai ulang ...)

Apakah Anda melihat cookie di menu "Preferensi"> Tab "Privasi"> tombol "Tampilkan Cookie ..."?

Selain itu, apakah Anda sudah mencoba profil baru?

benc
sumber
Sangat aneh, saya relatif senang jika ini hanya bug dengan dua sistem yang saya uji .. Saya telah melihat cookie dan mereka bertahan apa saja .. dan mereka benar-benar diklasifikasikan sebagai cookie sesi oleh firefox .. the satu-satunya pilihan yang pernah saya ubah di firefox adalah mematikan dan menghidupkan javascript .. plugin yang saya instal adalah firebug dan toolbar pengembang web .. ah selamat.
meandmycode
Ada juga berbagai preferensi modul cookie, tetapi saya tidak ingat ada yang memiliki fungsi seperti ini. FF3 memang beralih dari file teks ke database cookie, mungkin database Anda berperilaku salah.
benc
2

Saya tidak setuju dengan meandmycode di atas.

Spesifikasi HTTP https://www.ietf.org/rfc/rfc6265.txt berbicara tentang apa yang harus dilakukan klien dengan header Set-Cookie dengan Expires:

Jika server ingin agen pengguna mempertahankan cookie selama beberapa "sesi" (mis., Agen pengguna memulai ulang), server dapat menentukan tanggal kedaluwarsa di atribut Kedaluwarsa. Perhatikan bahwa agen pengguna mungkin menghapus cookie sebelum tanggal kedaluwarsa jika penyimpanan cookie agen pengguna melebihi kuota atau jika pengguna menghapus cookie server secara manual.

Perpanjangan logis dari ini adalah bahwa satu-satunya cara server harus mengharuskan browser tidak memelihara Cookie saat keluar adalah dengan menetapkan tidak ada nilai Kedaluwarsa (yaitu cookie sesi). Jika browser tidak menghormati semantik itu maka itu tidak menghormati respon server.

Pada dasarnya agen pengguna memutuskan untuk mengabaikan permintaan server dan bertindak seolah-olah nilai Kedaluwarsa telah ditetapkan.

Neill Robbins
sumber
1

Ini sedikit masalah di lingkungan pengguna bersama. Jika saya menetapkan cookie otentikasi yang diatur untuk kedaluwarsa di akhir sesi. Ini akan tetap ada di Firefox setelah browser ditutup dan pengguna lain menjalankan Firefox. Cookie ditetapkan dengan tanggal kedaluwarsa karena suatu alasan!

Jason
sumber
1
Nah, untuk bersikap adil tentang "Cookie disetel dengan tanggal kedaluwarsa karena suatu alasan" - dalam skenario ini, Anda tidak menyetel tanggal kedaluwarsa, jadi tergantung browser untuk memutuskan berapa lama cookie itu bertahan.
meandmycode
0

Saya bingung Mozilla membiarkannya seperti ini selama beberapa tahun.

OK .. jadi saya keluar dari FF dan mematikan PC. Hari berikutnya FF dimulai dan membuka set halaman terakhir (fitur berguna yang bagus) TAPI ia mengembalikan sesi dan saya masuk kembali ke situs yang tidak memiliki fitur "simpan pengaturan saya". Saya tahu karena itu adalah situs yang saya buat. Apa pun yang saya lakukan dengan pengaturan php ini sesi dipulihkan.

Mereka sama sekali tidak boleh dipulihkan. Halaman ya, tapi sesi dengan cookie ini disetel ke '0' tidak.

Saya tidak mengerti mengapa ini tidak ditandai sebagai lubang keamanan. Tentu saya dapat melakukan beberapa pemeriksaan tambahan di sisi server, untuk melihat apakah login harus diizinkan, berdasarkan waktu dari login terakhir, tetapi seharusnya tidak diperlukan.

Sesi TIDAK boleh berlanjut. FF memanipulasi pengaturan kadaluwarsa cookie.

anoldermark
sumber
-1

Yah, itu membingungkan saya. Sistem saya diatur sehingga pengguna dapat menekan KELUAR di mana saya menghancurkan semua cookie sesi. Namun jika pengguna menutup browser tanpa benar-benar memilih untuk Keluar, saya ingin cookie sesi dihapus.

Saya benar-benar mengujinya dengan Google Chrome, IE 9, dan berfungsi dengan baik. Tetapi Firefox enggan menghentikan cookie "sesi" ini (seperti yang dilaporkan oleh Firebug).

BAIK. Inilah yang saya lakukan. Saya memilih Keluar dari menu utama FireFox dan sejak saat itu, melakukannya dengan baik seperti yang diharapkan (Tidak tahu mengapa).

jdisla
sumber