İçeriğe atla
FerdiGidenby FerdiSoftBETA v2.4
Web Geliştirme

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.

Ferdi GidenFerdi Giden 2 dk okuma 41
PHP ile Güvenli Oturum Yönetimi: 7 Altın Kural
İçindekiler
  1. 1. Çerezleri sertleştirin
  2. 2. Sıkı modu açın
  3. 3. Yetki değiştiğinde kimliği yenileyin
  4. 4. Hareketsizlik zaman aşımı koyun
  5. 5. Oturumları veritabanında izleyin
  6. 6. "Beni hatırla" özelliğini doğru kurun
  7. 7. Kaba kuvvete sınır koyun

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.

Paylaş:
Ferdi Giden

Yazar

Ferdi Giden @admin
Sistem YöneticisiDoğrulanmış GeliştiriciBeta KullanıcıFerdiSoft KatılımcısıDoğrulanmış ProfilGüvenlik Bilinci

PHP, MySQL ve Tailwind ile kurumsal yazılımlar geliştiriyor; FerdiSoft çatısı altında ERP, WMS ve SaaS çözümleri üretiyor.

Yorumlar 0

Yorum yapmak ve tartışmaya katılmak için giriş yapın. Rozetleriniz yorumlarınızda görünür.

Henüz yorum yok. İlk yorumu siz yazın!

İlgili yazılar

Tüm yazılar
Ücretsiz Teklif Al