Keluar dari browser, tutup [duplikat]

Saya memiliki situs PHP dengan login. Setelah orang tersebut login (menggunakan sesi berbasis file standar), orang tersebut dapat mengklik halaman logout yang akan mengeluarkannya.

Masalahnya adalah - pengunjung umumnya tidak melakukan itu. Mereka cukup menutup browser web.

Namun, orang berikutnya bisa ikut, membuka browser, dan langsung berada di area login orang pertama.

Sepertinya ini akan menjadi lubang keamanan raksasa :) di lingkungan pengguna bersama (kantor, warung internet, dll)

Saya perlu tahu cara 'log out' orang tersebut dengan menutup jendela. Saya tahu itu

 'session.cookie_lifetime' 

variabel disetel ke 0.

Harus ada solusi. Bantuan apa pun akan sangat dihargai.


person Padraig    schedule 14.11.2013    source sumber


Jawaban (1)


PHP tidak dapat mengetahui (secara terpisah) kapan klien ditutup, karena itu adalah peristiwa klien, bukan peristiwa server. Namun Anda dapat menggunakan JS pada klien untuk AJAX kembali ke server untuk memberi tahu bahwa sesi ditutup, menggunakan acara window.unload ( tautan ).

Anda mungkin juga ingin melihat jawaban ini yang menjelaskan potensi lubang dalam pembersihan sesi (tidak yakin apakah itu masih berlaku untuk lebih banyak sesi) versi PHP terbaru) dan juga session.gc_maxlifetime, yang mungkin juga perlu Anda sesuaikan.

person Skrivener    schedule 14.11.2013
comment
Saya menemukan bahwa ini berfungsi dengan baik di IE 8 dan Safari. Hanya di Chrome dan Firefox yang tidak berfungsi. Browser ini entah bagaimana menggunakan kembali cookie sesi setelah browser ditutup. Saya bahkan mematikan 'saat startup, lanjutkan dari tempat saya tinggalkan'. Jadi ini bukan masalah PHP. - person Padraig; 14.11.2013