Session Timeout Nedir?
Bir kullanıcının web sitenize giriş yaptıktan sonra belirli bir süre boyunca herhangi bir etkinlik göstermemesi durumunda, oturumunun otomatik olarak kapanmasına Session Timeout denir. Bu özellik, hem kullanıcı güvenliğini sağlar hem de sunucu kaynaklarını verimli kullanmanıza yardımcı olur. PHP'de, session timeout’u yönetmek oldukça kolaydır ve birkaç satır kod ile uygulamanızda kullanabilirsiniz.
Session Timeout'u Neden Kullanmalısınız?
Diyelim ki bir kullanıcı, güvenlik nedenlerinden ötürü bir süre boyunca web sitenizde hiçbir işlem yapmadı. Eğer oturum süresi sınırsız olursa, bu durum güvenlik açığı oluşturabilir. Session hijacking (oturum hırsızlığı) gibi riskleri engellemek için session timeout kullanmak kritik bir öneme sahiptir. Ayrıca, oturum sürekliliği sağlamak, sunucunuzun verimli çalışmasını da sağlar.
Örnek bir durumu ele alalım:
Bir bankacılık uygulamasında, kullanıcı birkaç dakika boyunca işlem yapmazsa, oturum otomatik olarak kapanmalıdır. Bu özellik, kullanıcının hesap bilgilerini güvende tutmanın yanı sıra, sunucu üzerindeki gereksiz yükü de hafifletir.
PHP'de Session Timeout Nasıl Ayarlanır?
PHP'de session timeout ayarlamak oldukça basittir. İşte size adım adım rehber:
1. php.ini Dosyasını Düzenleyin:
Sunucunuzun PHP yapılandırmasında, session timeout değerini değiştirebilirsiniz. Aşağıdaki satırları php.ini dosyanıza ekleyin:
session.gc_maxlifetime = 3600 // 1 saatlik oturum süresi
2. Session Süresini PHP Koduyla Ayarlayın:
Sunucu ayarlarını değiştirmek istemiyorsanız, PHP kodu ile oturum süresini belirleyebilirsiniz. Aşağıdaki örnek, oturum süresini 15 dakika (900 saniye) olarak ayarlar:
3. Kullanıcının Etkinliğini İzleyin:
Kullanıcının son etkinlik zamanını takip ederek oturum süresini yönetebilirsiniz. Aşağıdaki kodda, son işlemden sonra 15 dakika boyunca herhangi bir etkinlik olmazsa, oturum sonlandırılır:
900)) {
session_unset(); // Oturumu temizle
session_destroy(); // Oturumu sonlandır
header("Location: login.php"); // Kullanıcıyı login sayfasına yönlendir
}
$_SESSION['LAST_ACTIVITY'] = time(); // Son etkinlik zamanını güncelle
?>
Oturum Sonlandırıldığında Ne Olur?
Oturum süresi dolduğunda, kullanıcıyı genellikle bir login sayfasına yönlendirirsiniz. Bu, güvenliği artırmak için çok önemlidir. Ayrıca, kullanıcı deneyimini iyileştirmek adına, zaman aşımı hakkında bilgi veren bir uyarı eklemek de iyi bir fikir olabilir.
Örneğin:
Kullanıcıların oturumlarının bitmek üzere olduğuna dair bir uyarı, onları tekrar giriş yapmaya teşvik edebilir. Bu, kullanıcıların uygulamanıza daha hızlı ve güvenli bir şekilde dönmelerini sağlar.
Sonuç Olarak
PHP'de session timeout kullanımı, uygulamanızın güvenliği ve verimliliği için önemli bir adımdır. Kullanıcı deneyimini iyileştirebilir, sunucu kaynaklarını daha verimli kullanabilir ve güvenlik risklerini en aza indirebilirsiniz. Yukarıda verdiğimiz örneklerle, bu özelliği kolayca uygulamanızda kullanabilirsiniz.
Ayrıca, PHP’de session yönetimi hakkında daha fazla bilgi edinmek için resmi PHP dokümantasyonuna göz atabilirsiniz. Unutmayın, güvenli bir web uygulaması geliştirirken küçük ama önemli detaylar, büyük farklar yaratabilir.