Session ve Cookie: Oturum Yönetimi ve Çerez Kullanımı

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
HTTP protokolü "stateless" (durumsuz) bir yapıdır; yani tarayıcı sayfayı her yenilediğinde sunucu sizin kim olduğunuzu unutur. Kullanıcının giriş yapmış kalmasını veya sepete eklediği ürünlerin kaybolmamasını sağlamak için Session ve Cookie mekanizmalarını kullanırız.

1. Session (Oturum) Kullanımı​


Session verileri sunucu tarafında saklanır ve tarayıcı kapatıldığında (aksi belirtilmedikçe) silinir. Hassas veriler (Kullanıcı ID, Yetki Seviyesi vb.) için en güvenli yoldur.

Önemli: Herhangi bir session işlemi yapmadan önce sayfanın en başında session_start() fonksiyonu çağrılmalıdır.

PHP:
<?php
session_start(); // Oturumu başlat

// Veri atama
$_SESSION['kullanici_id'] = 45;
$_SESSION['kullanici_adi'] = "Ahmet";

// Veriye erişim
echo "Hoş geldin, " . $_SESSION['kullanici_adi'];

// Belirli bir veriyi silme
unset($_SESSION['kullanici_adi']);

// Tüm oturumu sonlandırma (Çıkış yapıldığında kullanılır)
session_destroy();
?>

2. Cookie (Çerez) Kullanımı​


Cookie'ler kullanıcının bilgisayarında saklanır. Belirli bir süre (günler, aylar) boyunca geçerli kalabilirler. "Beni Hatırla" özellikleri veya tema tercihleri için idealdir.

PHP:
<?php
// Çerez Tanımlama (setcookie)
// Parametreler: İsim, Değer, Süre (saniye cinsinden), Yol
$sure = time() + (60 * 60 * 24 * 30); // 30 gün geçerli
setcookie("tema_tercihi", "dark_mode", $sure, "/");

// Çerezi Okuma
if(isset($_COOKIE['tema_tercihi'])) {
echo "Tercih ettiğiniz tema: " . $_COOKIE['tema_tercihi'];
}

// Çerezi Silme (Süresini geçmiş bir zamana ayarlayarak)
setcookie("tema_tercihi", "", time() - 3600, "/");
?>

Session ve Cookie Arasındaki Temel Farklar​


ÖzellikSessionCookie
Saklama YeriSunucu (Server)Tarayıcı (İstemci)
GüvenlikYüksekDüşük (Değiştirilebilir)
KapasiteSınırsız (Sunucuya bağlı)Sınırlı (Maks. 4KB)
Kullanım ÖmrüTarayıcı kapanınca biterBelirlenen süre kadar kalır

3. Güvenlik İpuçları​



  • [] Cookie Güvenliği: Hassas verileri (şifre, kredi kartı vb.) asla çerezlerde saklamayın. Çerez tanımlarken httponly ve secure bayraklarını kullanarak XSS saldırılarını engelleyin.
    [] Session Fixation: Giriş işlemi başarılı olduğunda session_regenerate_id() fonksiyonunu kullanarak oturum ID'sini yenileyin.
  • Veri Temizliği: Kullanıcıdan gelen çerez verilerini her zaman htmlspecialchars() veya filtreleme fonksiyonlarından geçirin.

Sonuç​


Özetle; kullanıcı login bilgileri gibi kritik veriler için Session, kullanıcının arayüz tercihleri veya "Beni Hatırla" gibi uzun süreli ama kritik olmayan bilgiler için Cookie tercih edilmelidir. Profesyonel bir sistemde her iki mekanizma da birbirini tamamlayacak şekilde kullanılır.
 
Geri
Üst