PHP ile Güvenli Oturum Yönetimi: 7 Altın Kural
Session fixation'dan çerez hırsızlığına kadar PHP oturumlarını tehdit eden saldırılara karşı uygulamanız gereken yedi temel kural.
İçindekiler
Bir web uygulamasında kullanıcının kim olduğunu her istekte hatırlamanın yolu oturumdur. Oturum kimliği ele geçirilirse saldırgan, şifreye bile ihtiyaç duymadan hesabın sahibi olur. PHP projelerinde uyguladığımız yedi kural:
1. Çerezleri sertleştirin
session_set_cookie_params([
'secure' => true, // yalnızca HTTPS
'httponly' => true, // JavaScript erişemez
'samesite' => 'Lax', // siteler arası istek sahteciliğine karşı
]);2. Sıkı modu açın
session.use_strict_mode = 1 ayarı, sunucunun hiç üretmediği bir oturum kimliğini kabul etmez. Böylece saldırganın önceden belirlediği kimliği kurbana kullandırması (session fixation) engellenir.
3. Yetki değiştiğinde kimliği yenileyin
Giriş, çıkış ve iki adımlı doğrulama gibi her yetki değişiminde session_regenerate_id(true) çağırın. Uzun oturumlarda kimliği belirli aralıklarla (örneğin 15 dakikada bir) yenilemek de iyi bir alışkanlıktır.
4. Hareketsizlik zaman aşımı koyun
Son işlem zamanını oturumda tutun; belirli bir süre (ör. 2 saat) işlem yapılmamışsa oturumu sonlandırın.
5. Oturumları veritabanında izleyin
Her girişe rastgele bir anahtar verip özetini veritabanına kaydedin. Böylece kullanıcı "diğer tüm cihazlardan çıkış yap" dediğinde ya da hesap askıya alındığında oturumlar anında geçersiz olur.
6. "Beni hatırla" özelliğini doğru kurun
Kalıcı çerezde asla kullanıcı kimliği ya da şifre özeti tutmayın. Seçici + doğrulayıcı yöntemiyle doğrulayıcının yalnızca özetini saklayın ve her kullanımda yenileyin.
7. Kaba kuvvete sınır koyun
Giriş denemelerini IP ve kullanıcı adına göre sınırlayın; hata mesajlarında hesabın var olup olmadığını belli etmeyin.
Bu kuralların tamamı FerdiGiden v2 altyapısında uygulanmıştır. Profil → Güvenlik sayfasından aktif oturumlarınızı görüp tek tıkla kapatabilirsiniz.
Yazar
Ferdi Giden @adminPHP, MySQL ve Tailwind ile kurumsal yazılımlar geliştiriyor; FerdiSoft çatısı altında ERP, WMS ve SaaS çözümleri üretiyor.