Apa batas waktu sesi default php?

Ini menyediakan metode untuk mengatur batas waktu untuk sesi di PHP. Kami dapat menghentikan waktu sesi PHP baik secara terprogram atau menggunakan sesi. konfigurasi gc_maxlifetime dalam file PHPs ini atau dengan memanggil fungsi ini_set

23 April 2020

Kita dapat menggunakan sesi dalam PHP untuk menyimpan atau mempertahankan data sementara pengguna untuk durasi tertentu seperti yang dibahas dalam Menggunakan Sesi dalam PHP. PHP masih perlu menyimpan id sesi menggunakan Cookie di browser atau sisi klien seperti yang ditunjukkan pada Gambar 1

Apa batas waktu sesi default php?

Gambar 1

ID sesi yang disimpan di browser di Cookie PHPSESSID adalah satu-satunya cara yang dapat digunakan PHP untuk mengidentifikasi sesi pengguna di sisi server. Ini masih memperlihatkan Cookie PHPSESSID untuk penyerang untuk mencurinya dan meminta server untuk memproses permintaan atas nama pengguna yang sebenarnya. Hal ini menyebabkan pembajakan sesi di mana id sesi yang dicuri dapat digunakan oleh penyerang untuk mengakses data dari sesi aktif. Untuk mencegah permintaan yang tidak sah, kami juga dapat menggunakan token kriptografi yang kuat yang terus berubah untuk setiap permintaan yang dibuat oleh klien

Kami dapat memperketat keamanan lebih lanjut dengan mengatur waktu sesi segera setelah penggunaannya selesai. Ini juga menghapus cookie sesi di browser atau sisi klien. Tutorial ini menyediakan metode untuk mengatur batas waktu sesi dalam PHP. Kami dapat menghentikan waktu sesi PHP baik secara terprogram atau menggunakan sesi. konfigurasi gc_maxlifetime dalam file PHPs ini atau dengan memanggil fungsi ini_set

Perbarui PHP ini

Kami dapat memperbarui sesi. gc_maxlifetime dengan memperbarui file PHP ini. Saya telah memberikan beberapa contoh seperti yang ditunjukkan di bawah ini

# WampServer -> Example -> <WampServer Path>/bin/php/php7.2.14/php.ini

# XAMPP -> Example -> <XAMPP Path>/php/php.ini

# Ubuntu -> Apache Example -> /etc/php/7.2/apache2/php.ini

Sekarang cari php.ini Anda. file ini untuk sesi. gc_maxlifetime dan perbarui seperti yang ditunjukkan di bawah ini

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
;session.gc_maxlifetime = 1440
session.gc_maxlifetime = 900
_

Saya telah memperbarui nilai default dari 24 menit menjadi 15 menit seperti yang ditunjukkan di atas. Sekarang restart server Apache atau Nginx berdasarkan pengaturan server Anda

Anda juga dapat menghentikan waktu cookie dengan mengubah nilai default 0 menjadi nilai waktu tunggu sesi yang sama. Pastikan Anda memperbarui waktu kedaluwarsa Cookie pada setiap permintaan dalam kasus seperti itu

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
; http://php.net/session.cookie-lifetime
;session.cookie_lifetime = 0
session.cookie_lifetime = 900

Gunakan Fungsi ini_set

Kita juga dapat menggunakan fungsi ini_set daripada mengubah durasi timeout sesi default seperti yang ditunjukkan pada langkah sebelumnya. Kita dapat memanggil fungsi ini_set untuk mengubah session. gc_maxlifetime seperti yang ditunjukkan di bawah ini

// Configure timeout to 15 minutes
$timeout = 900;

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

// Also set the session cookie timeout
ini_set( "session.cookie_lifetime", $timeout );

// Now start the session
session_start();

// Update the timeout of session cookie
$sessionName = session_name();

if( isset( $_COOKIE[ $sessionName ] ) ) {

setcookie( $sessionName, $_COOKIE[ $sessionName ], time() + $timeout, '/' );
}

Waktu Tunggu Sesi Terprogram

Kita dapat menghentikan sesi secara terprogram tanpa mengubah konfigurasi PHP menggunakan contoh seperti yang ditunjukkan di bawah ini. Ini berfungsi persis seperti yang kita inginkan tanpa bergantung pada pengumpulan sampah PHP yang mungkin tidak membatasi waktu sesi pada durasi yang ditentukan seperti yang dibahas di bagian sebelumnya

// Start the session
session_start();

// Session timeout duration in seconds
// Specify value lesser than the PHPs default timeout of 24 minutes
$timeout = 900;

// Check existing timeout variable
if( isset( $_SESSION[ 'lastaccess' ] ) ) {

// Time difference since user sent last request
$duration = time() - intval( $_SESSION[ 'lastaccess' ] );

// Destroy if last request was sent before the current time minus last request
if( $duration > $timeout ) {

// Clear the session
session_unset();

// Destroy the session
session_destroy();

// Restart the session
session_start();
}
}

// Set the last request variable
$_SESSION['lastaccess'] = time();
_

Ringkasan

Tutorial ini memberikan detail tentang pentingnya batas waktu sesi dan juga menyediakan opsi untuk menentukan durasi batas waktu sesi

Berapa lama sesi PHP berlangsung secara default?

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

Apa itu batas waktu sesi default?

Standarnya adalah 10 menit . Sidang. Timeout tidak memiliki batas hard-coded. Sebagian besar administrator Web menyetel properti ini ke 8 menit. Seharusnya tidak diatur lebih tinggi dari 20 menit (kecuali dalam kasus khusus) karena setiap sesi terbuka menyimpan memori.