session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

session_regenerate_idGeçerli oturum kimliğini yenisiyle değiştirir

Açıklama

session_regenerate_id(bool$eski_oturumu_sil = false): bool

session_regenerate_id() işlevi geçerli oturum kimliğini yenisiyle değiştirirken oturum bigisini korur.

session.use_trans_sid etkin olduğunda, çıktı session_regenerate_id() çağrısından sonra başlatılmalıdır. Aksi takdirde, eski oturum kimliği kullanılır.

Uyarı

Şu an için, işlev Mobil veya WiFi ağları gibi dengesiz ağlarda düzgün çalışmamaktadır. Bu bakımdan, işlev böyle ağlarda çağrıldığında bir oturum kaybı yaşanabilir.

Eski oturum verisini değil, eski oturumun zaman damgasını hemen yok etmeli ve eski oturum kimliğine erişimi denetlemelisiniz. Aksi takdirde, sayfaya eşzamanlı erişimler tutarsız bir duruma veya oturum kaybına yol açabilir. Ya da, istemcinin (tarayıcı) yarış durumu yan etkisi nedeniyle, gereksiz yere çok sayıda boş oturum kimliği çerezi oluşturmasına sebep olabilir. Eski oturum verisinin hemen silinmesi ayrıca oturum ele geçirme saldırısını algılamayı ve önlemeyi devre dışı bırakır.

Bağımsız Değişkenler

eski_oturumu_sil

true ise eski oturum verisi silinir. Yarış durumlarından kaçınmak ve oturum ele geçirme saldırılarını algılamak/önlemek için eski oturum hemen silinmemelidir.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Örnekler

Örnek 1 - session_regenerate_id() örneği

<?php
// Dikkat: Bu kod tamamen çalışır durumda değildir, sadece bir örnektir!

session_start();

// Zaman damgası yok edilmiş mi?
if (isset($_SESSION['destroyed'])
&&
$_SESSION['destroyed'] < time() - 300) {
// Normalde olmamalı. Saldırı veya kararsız ağ nedeniyle olabilir.

Geçerli oturum modülü tutarsız ağda iyi çalışmaz. İşlevin oturumu kaybetmesinden kaçınmak için oturum kimliği yönetilmelidir.

Örnek 2 - session_regenerate_id() ile oturum kaybını önlemek

<?php
// Dikkat: Bu kod tamamen çalışır durumda değildir, sadece bir örnektir!

// my_session_start() ve my_session_regenerate_id() tutarsız ağda
// oturum kaybını önler. Ek olarak bu kod, çalınan oturumun saldırganlar
// tarafından suistimal edilmesini engelleyebilir.

function my_session_start() {
session_start();
if (isset(
$_SESSION['destroyed'])) {
if (
$_SESSION['destroyed'] < time()-300) {
// Normalde olmamalı. Saldırı veya kararsız ağ nedeniyle olabilir.

Ayrıca Bakınız

To Top