Güvenli cookie ayarları nelerdir? Session hijacking nasıl önlenir?
Cevap
Session hijacking, saldırganın kullanıcının oturum kimliğini (session ID / token) ele geçirip onun yerine istek atmasıdır. Kimlik genelde cookie'de taşındığı için cookie ayarları kritiktir.
Set-Cookie: sid=abc123; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=3600| Bayrak | Ne yapar? | Neye karşı korur? |
|---|---|---|
HttpOnly | JavaScript document.cookie ile okuyamaz | XSS ile token çalınması |
Secure | Yalnızca HTTPS üzerinden gönderilir | Ağ dinleme (MITM) |
SameSite=Lax/Strict | Siteler arası isteklerde cookie gönderimini kısıtlar | CSRF |
Max-Age / Expires | Ömrü sınırlar | Uzun süre geçerli çalıntı oturum |
__Host- öneki | Secure, Path=/ ve Domain'siz olmayı zorunlu kılar | Alt alan adından cookie ezme |
Diğer önlemler
- Girişten sonra session ID yenileme: session fixation saldırısını önler.
- Kısa ömürlü oturum + kullanıcı hareketsizliğinde zaman aşımı.
- Çıkışta sunucu tarafında oturumu gerçekten geçersiz kılma.
- Şifre değişince tüm oturumları sonlandırma.
- Session ID tahmin edilemez olmalı (kriptografik rastgele, en az 128 bit).
- Şüpheli değişikliklerde (ülke, cihaz) yeniden doğrulama istemek.
Token'ı localStorage'da tutmak XSS durumunda doğrudan okunabilmesi anlamına gelir; HttpOnly cookie bu açıdan daha güvenlidir.
İlgili Web Güvenliği soruları
- CORS nedir? Neden CORS hatası alırız?
- XSS ve CSRF saldırıları nedir, nasıl korunulur?
- Authentication ile authorization arasındaki fark nedir?
- Content Security Policy (CSP) nedir ve nasıl yapılandırılır?
- OWASP Top 10 nedir? En önemli maddelerini özetleyin.
- Parolalar veritabanında nasıl saklanmalıdır? bcrypt ve Argon2 neden tercih edilir?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.