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?


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.


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


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?


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.


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!


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.


-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).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.