Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP 8 ile Kilitli Kapılar: Güvenli Oturum (Session) Yönetimi Rehberi

Son1Dem

[404: Fear not found]
Telefon Numarası Onaylanmış Üye
Banlı
TM Üye
Katılım
1 Tem 2019
Konular
1,893
Mesajlar
5,201
Çözüm
134
Online süresi
1mo 8d
Reaksiyon Skoru
4,001
Altın Konu
140
Başarım Puanı
339
MmoLira
39,500
DevLira
150
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

🔐 PHP 8 ile Güvenli Oturum Yönetimi Rehberi: Dijital Kapıları Sağlam Kilitleyin​


Bir kullanıcı sitenize giriş yaptığında, alışveriş sepetini doldurduğunda ya da sayfanın üst kısmında “Hoş geldin, Ayşe” yazısını gördüğünüzde arka planda sessizce çalışan bir mekanizma vardır: oturum (session) yönetimi.
Oturumlar, kullanıcının kimliğini tanımamızı ve ona özel verileri korumamızı sağlar.
Ancak her kimlik gibi, bu oturum kimliklerinin de çalınma riski vardır. İşte burada PHP 8, bize bu “kapıları” güvenle kilitleyebilmemiz için güçlü araçlar sunar.


Gelin adım adım bu güvenlik önlemlerine bakalım 👇




🧱 1. Sağlam Başlangıç: Oturumu Güvenli Şekilde Başlatmak​


Bir oturum başlattığınız anda güvenlik kurallarını koymak önemlidir.
PHP 8 ile session_start() fonksiyonuna doğrudan güvenlik ayarlarını dizi (array) olarak tanımlayabiliyoruz:



Kod:
session_start([

    'cookie_secure' => true,

    'cookie_httponly' => true,

    'use_only_cookies' => true,

    'cookie_samesite' => 'Strict',

]);


Peki bu ayarlar ne işe yarıyor?


  • cookie_secure: Çerezlerin sadece HTTPS bağlantılarında gönderilmesini sağlar. Araya giren biri çerezleri okuyamaz.
  • cookie_httponly: JavaScript’in oturum çerezine erişmesini engeller. XSS saldırılarına karşı kritik bir korumadır.
  • use_only_cookies: Oturum kimliğinin sadece çerezlerle taşınmasına izin verir. URL üzerinden kimlik sızdırmayı önler.
  • cookie_samesite: Çerezlerin yalnızca kendi sitenizden gelen isteklerle kullanılmasını sağlar. CSRF saldırılarına karşı güçlü bir kalkan görevi görür.



🔑 2. Anahtarı Yenileyin: session_regenerate_id()​


Saldırganın sizi kendi oturum kimliğiyle oturum açmaya zorlamasına Session Fixation denir.
Bunu önlemenin yolu, kullanıcı giriş yaptığında veya yetkisi değiştiğinde oturum kimliğini yenilemektir:



Kod:
// Giriş işlemi başarılı olduğunda

session_regenerate_id(true);


Buradaki true parametresi, eski oturum dosyasını tamamen siler.
Böylece saldırganın elindeki eski kimlik artık işe yaramaz.




⏰ 3. Oturum Süresi: Hareketsiz Kullanıcılar İçin Zaman Aşımı​


Bir kullanıcı bilgisayarını açık bırakırsa, oturumun süresiz açık kalması güvenlik riski oluşturur.
Bunu engellemek için oturum ömrünü sınırlamak gerekir:



Kod:
// Oturum 30 dakika sonra sona ersin

ini_set('session.gc_maxlifetime', 1800);


Ek olarak, JavaScript ile kullanıcı 15 dakika boyunca işlem yapmazsa “otomatik çıkış” sistemini de ekleyebilirsiniz.
Bu, kullanıcı verilerini korumanın basit ama etkili yollarından biridir.




🧰 4. Veriyi Güvenle Saklayın: Oturum Depolama Alanı​


PHP genellikle oturum verilerini sunucuda /tmp klasöründe metin dosyaları olarak saklar.
Ancak paylaşımlı hosting ortamlarında bu dosyalar başka kullanıcılar tarafından okunabilir!


Daha güvenli bir yaklaşım, oturumları Redis, Memcached veya veritabanında saklamaktır.
Bu yöntem hem güvenliği artırır hem de yüksek trafikli uygulamalarda performans kazandırır.




🚪 5. Çıkışı Unutmayın: session_destroy()​


Kullanıcı “Çıkış Yap” butonuna bastığında yalnızca $_SESSION verilerini temizlemek yeterli değildir.
Sunucudaki kayıtlı oturumun da silinmesi gerekir:



Kod:
session_destroy();


Bu komut, oturumun sunucudaki tüm izlerini tamamen ortadan kaldırır.




⚠️ 6. Oturuma Ne Yazdığınıza Dikkat Edin​


Oturumlar güvenli alanlar değildir; kullanıcı verilerini yazarken her zaman dikkatli olun.


Yazarken (input):



Kod:
$cleanInput = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);

$_SESSION['username'] = $cleanInput;


Okurken (output):



Kod:
echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');


Bu şekilde XSS gibi saldırılara karşı koruma sağlarsınız.




🧩 Son Söz: Güvenlik Sürekli Bir Süreçtir​


Unutmayın, güvenlik bir “ayar” değil, sürekli devam eden bir süreçtir.
Bu adımları uygulasanız bile, düzenli güvenlik testleri yapmak ve PHP güncellemelerini takip etmek kritik önem taşır.


PHP 8’in sunduğu bu yeni güvenlik özelliklerini doğru kullanarak hem kullanıcı verilerini hem de projenizin itibarını koruyabilirsiniz. 🔒


4.png
 
Son düzenleme:
konu daha önce paylaşıldığı için -RED- edilmiştir.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst