Sesi php berakhir setelah 1 hari

Sesi adalah cara untuk menyimpan informasi (dalam variabel) untuk digunakan di beberapa Permintaan HTTP, untuk mensimulasikan "keadaan" di seluruh navigasi halaman

Tidak seperti cookie, informasi tidak disimpan di komputer pengguna akhir tetapi di server aplikasi

Untuk alasan keamanan, sesi memiliki batas waktu untuk ada daripada kedaluwarsa. PHP memiliki batas waktu tunggu default dan terkadang ini bukan batas waktu yang dibutuhkan aplikasi Anda. Dalam posting ini kita akan belajar bagaimana mengubah Timeout Sesi PHP

Berapa lama batas waktu sesi PHP

Batas waktu sesi PHP tergantung pada konfigurasi server atau arahan yang relevan session.gc_maxlifetime dalam file php.ini

Biasanya batas waktu sesi PHP default adalah 24 menit (1440 detik), tetapi host web Anda mungkin telah mengubah default ke yang lain

Apa batas waktu sesi yang wajar?

OWASP, salah satu organisasi standar keamanan aplikasi web paling otoritatif, mengatakan tentang waktu tunggu sesi

“Kedaluwarsa sesi yang tidak mencukupi oleh aplikasi web meningkatkan paparan serangan berbasis sesi lainnya, karena agar penyerang dapat menggunakan kembali ID sesi yang valid dan membajak sesi terkait, itu harus tetap aktif. Semakin pendek interval sesi, semakin sedikit waktu penyerang harus menggunakan ID sesi yang valid. Nilai batas waktu kedaluwarsa sesi harus ditetapkan sesuai dengan tujuan dan sifat aplikasi web, serta menyeimbangkan keamanan dan kegunaan, sehingga pengguna dapat dengan nyaman menyelesaikan operasi dalam aplikasi web tanpa sesinya sering kedaluwarsa...Rentang waktu tunggu tidak aktif yang umum adalah 2 . ”

Dari perspektif pedoman federal, draf NIST 800-63B – Pedoman Identitas Digital mengusulkan rekomendasi berikut untuk memberikan kepercayaan tinggi untuk autentikasi. “Autentikasi ulang pelanggan AKAN diulang setelah tidak lebih dari 30 menit pengguna tidak aktif. ”

Jadi sesi Anda tidak boleh lebih dari 30 menit. Baca pertimbangan batas waktu Sesi di artikel ini

Menyetel Batas Waktu Sesi PHP

Batas waktu sesi dalam PHP dikonfigurasi menggunakan dua arahan dalam file php.ini

  • sidang. gc_maxlifetime. Ini digunakan untuk mengatur batas waktu dalam detik untuk menyimpan informasi sesi di server untuk waktu yang lama

  • sidang. cookie_lifetime. Ini digunakan untuk mengatur batas waktu kedaluwarsa untuk cookie PHPSESSID

Cara lain untuk menyetel batas waktu sesi PHP adalah dengan menggunakan fungsi ini_set() dalam skrip PHP

Menggunakan php. pengaturan ini untuk batas waktu sesi

Temukan arahan session.gc_maxlifetime dan pilih sekecil mungkin. session.gc_maxlifetime adalah pengaturan untuk menghapus ID sesi usang. Ketergantungan pada pengaturan ini tidak disarankan. Pengembang harus mengelola sesi seumur hidup dengan stempel waktu sendiri

Ini menentukan jumlah detik setelah data akan dilihat sebagai 'sampah' dan berpotensi dibersihkan. Pengumpulan sampah dapat terjadi selama sesi dimulai (tergantung pada session.gc_probability dan

Session is created for PHPSESSID.
0). Default ke 1440 (24 menit)

Temukan arahan

Session is created for PHPSESSID.
_1 dan atur ke
Session is created for PHPSESSID.
2 (nol). Nilai ini memiliki arti tertentu. Ini menginformasikan browser untuk tidak menyimpan cookie ke penyimpanan permanen. Oleh karena itu, saat browser dihentikan, cookie ID sesi segera dihapus. Jika pengembang menyetel ini selain 0, pengguna lain dapat menggunakan ID sesi. Sebagian besar aplikasi harus menggunakan "0" untuk ini

Jika fitur masuk otomatis diperlukan, pengembang harus menerapkan fitur masuk otomatis aman mereka sendiri. Jangan gunakan ID sesi umur panjang untuk ini

Menggunakan arahan ini_set untuk menyetel batas waktu sesi

Anda dapat menyetel session.gc_maxlifetime dan

Session is created for PHPSESSID.
1 menggunakan fungsi
Session is created for PHPSESSID.
5

Untuk ini, di awal skrip Anda, panggil fungsi yang meneruskan arahan dan nilai yang diinginkan untuk menyetelnya

Lihat contoh berikut

<?php

//Set the session timeout for 2 seconds
$timeout = 2;

//Set the maxlifetime of the session
ini_set( "session.gc_maxlifetime", $timeout );

//Set the cookie lifetime of the session
ini_set( "session.cookie_lifetime", $timeout );

//Start a new session
session_start();

//Set the default session name
$s_name = session_name();

//Check the session exists or not
if(isset( $_COOKIE[ $s_name ] )) {
    setcookie( $s_name, $_COOKIE[ $s_name ], time() + $timeout, '/' );

    echo "Session is created for $s_name.<br/>";
} else {
    echo "Session is expired.<br/>";
}
?>

Output berikut akan muncul setelah menjalankan skrip di atas untuk pertama kalinya

Session is created for PHPSESSID.

Dan menjalankannya lagi setelah 2 detik hasilnya akan menjadi

Session is expired.

Kesimpulan

Batas waktu sesi yang tepat untuk aplikasi PHP dapat dikonfigurasi menggunakan file php.ini global atau dengan skrip, yang memberi pengembang lebih banyak kontrol tentang berapa lama sesi harus berlangsung

Berapa lama sesi PHP berlangsung?

Secara default, variabel sesi bertahan hingga pengguna menutup browser . Jadi; .

Bagaimana cara mengatur batas waktu untuk sesi di PHP?

Batas batas waktu sesi dapat diatur dengan mengatur nilai dua direktif di php. file ini atau menggunakan fungsi ini_set() dalam skrip PHP . Arahan diberikan di bawah ini. Ini digunakan untuk mengatur batas waktu dalam detik untuk menyimpan informasi sesi di server untuk waktu yang lama.

Bagaimana cara mengakhiri sesi PHP setelah 30 menit?

Catatan. .
sidang. .
jika Anda ingin mengakhiri sesi setelah 30 menit aktivitas alih-alih setelah 30 menit sejak dimulai, Anda juga harus menggunakan setcookie dengan kadaluarsa waktu()+60*30 agar cookie sesi tetap aktif

Bagaimana cara meningkatkan waktu kedaluwarsa sesi di PHP?

Jika Anda menggunakan penanganan sesi default PHP, satu-satunya cara untuk mengubah durasi sesi secara andal di semua platform adalah dengan mengubah php. ini . Itu karena di beberapa platform, pengumpulan sampah diimplementasikan melalui skrip yang dijalankan setiap waktu tertentu (skrip cron) yang dibaca langsung dari php.