Oturum Güvenligi Neden Zor

PHP oturumlari basit görünür: session_start(), verileri $_SESSION'a depola, bitti. Ancak bu basitlik bir güvenlik sorunlari mayin tarlasini gizler. Oturum sabitleme, oturum ele gecirme, siteler arasi oturum sizintisi, CSRF saldirilari — her biri bir saldirgana CMS'nize tam admin erisimi verebilir.

JekCMS yedi katman oturum güvenligi uygular.

Katman 1: Güvenli Cerez Yapilandirmasi

httponly XSS'in oturum cerezlerini calmasini durdurur. secure oturum cerezlerinin sifrelenmemis HTTP üzerinden gonderilmesini onler. samesite=Lax capraz kokenli POST istekleriyle cerez gondermeyerek cogu CSRF saldrisini engeller.

Katman 2: Oturum Sabitleme Onleme

Basarili girişten sonra session_regenerate_id(true) yeni bir oturum ID'si oluşturur ve eski oturum verilerini yok eder.

Katman 3: CSRF Token Dogrulamasi

Her form gizli bir csrf_token alani icerir. Gecerli token olmadan POST istekleri 403 ile reddedilir.

Katman 4: Beni-Hatirla Token Rotasyonu

Token her kullanildiginda donatilir — eski token gecersiz kilinir ve yeni bir tane verilir. Token rotasyonu calinti bir beni-hatirla cerezinin yalnizca bir kez kullanilabilecegi anlamina gelir.

Katman 5: Coklu Site Oturum Izolasyonu

Site başına benzersiz oturum adi ve oturumdaki site hash doğrulamasi ile 12 site arasinda izolasyon saglanir.

Katman 6: Mutlak Oturum Zaman Asimi

Oturumlar aktiviteden bağımsız olarak 2 saat sonra sona erer. Bu oturum ele gecirme firsatini sinirlar.

Katman 7: IP Baglama (Opsiyonel)

Yuksek güvenlik dağıtımlar için oturumlar istemcinin IP adresine baglanabilir.