Oturum Zaman Aşımının Önemi
PHP ile Oturum Süresi Ayarlama
Öncelikle PHP oturumu başlatmamız gerekiyor:
```php
session_start();
?>
```
Bu komut, PHP’nin oturum başlatmasını sağlar. Oturum, kullanıcıların web sitenizle etkileşime girmeye başladığı andan itibaren aktif olur. Şimdi, bir zaman aşımı süresi belirlemek için, kullanıcının son aktivitesinin üzerinden geçen süreyi kontrol edebiliriz.
Zaman aşımı süresi için temel bir kontrol ekleyelim:
```php
session_start();
// Oturum süresi için zaman aşımı süresi (örneğin 30 dakika)
$timeout_duration = 1800; // 30 dakika
// Eğer son aktivite zamanını daha önce kaydettiyseniz, kontrol edin
if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity']) > $timeout_duration) {
// Oturum süresi dolmuşsa kullanıcıyı çıkart
session_unset();
session_destroy();
header("Location: logout.php"); // Çıkış sayfasına yönlendir
exit();
}
// Son aktiviteyi güncelle
$_SESSION['last_activity'] = time();
?>
```
Bu kod, kullanıcının son aktif olduğu zamandan itibaren belirlenen süreyi (örneğin 30 dakika) kontrol eder. Eğer bu süre geçmişse, kullanıcıyı oturumdan çıkartır ve çıkış sayfasına yönlendirir.
Zaman Aşımını Özelleştirme
Örneğin, her kullanıcının farklı bir oturum süresi olmasını sağlamak için kullanıcı bilgilerini veritabanında tutabilir ve bu bilgilere göre oturum süresi ayarlayabilirsiniz.
```php
session_start();
// Veritabanı bağlantısı ve kullanıcı bilgileri (bu kısmı kendi veritabanınıza göre uyarlayın)
$user_id = $_SESSION['user_id'];
$user_session_timeout = get_user_session_timeout($user_id); // Örneğin 3600 saniye, yani 1 saat
// Eğer son aktivite zamanını daha önce kaydettiyseniz, kontrol edin
if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity']) > $user_session_timeout) {
// Oturum süresi dolmuşsa kullanıcıyı çıkart
session_unset();
session_destroy();
header("Location: logout.php");
exit();
}
// Son aktiviteyi güncelle
$_SESSION['last_activity'] = time();
?>
```
Bu örnekte, her kullanıcı için veritabanından alınan bir oturum süresi kullanılarak oturumun süresi dinamik olarak belirleniyor. Bu, daha esnek bir oturum yönetimi sağlar.
PHP Oturum Süresi ve Güvenlik
PHP’de ek güvenlik önlemleri almak isterseniz, aşağıdaki ipuçlarını dikkate alabilirsiniz:
- Oturum ID'sini her istekten sonra değiştirmek: Bu, oturum sabitleme saldırılarına karşı koruma sağlar.
- HTTPS kullanmak: Çerezler ve oturum bilgileri şifreli olarak aktarılmalıdır. Bu, man-in-the-middle (MITM) saldırılarına karşı koruma sağlar.
- Güçlü oturum yönetimi: Kullanıcıların şifrelerini güçlü ve benzersiz tutmalarını sağlamak için ek güvenlik önlemleri alın.
Sonuç
Unutmayın, her web uygulamasının güvenliği kullanıcıların güvenliği ile başlar. Bu yüzden, PHP oturum süresi ayarlarını dikkatlice yapmalısınız!