Secure, HttpOnly ve SameSite cookie flag'leri
Oturum cookie'leri başlıca bir hedeftir. Üç öznitelik — Secure, HttpOnly ve SameSite — bir saldırganın onları çalıp çalamayacağını veya kötüye kullanıp kullanamayacağını belirler. Eksik flag'ler doğrudan oturum ele geçirmeye ve CSRF'e yol açar.
Nedir
Secure, cookie'yi yalnızca HTTPS üzerinden gönderir. HttpOnly, onu JavaScript'ten (document.cookie) gizler. SameSite, cross-site isteklerde gönderilip gönderilmeyeceğini kontrol eder.
Birlikte saldırı yüzeyini küçültürler: bir saldırgan cookie'yi enjekte edilen script ile okuyamaz, HTTP üzerinden dinleyemez ve başka bir siteden bunun üzerinden hareket edemez.
Neden önemli
HttpOnly olmadan, herhangi bir XSS hatası oturum cookie'sini okuyabilir ve saldırgana oturum açmış bir oturum verebilir. Secure olmadan, cookie herhangi bir düz HTTP isteğinde sızar.
SameSite olmadan tarayıcı, cookie'yi cross-site isteklere ekler; bu da CSRF saldırılarının dayandığı mekanizmadır.
Nasıl düzeltilir
Çoğu framework, cookie'yi ayarlarken bunları seçenek olarak sunar.
res.cookie("session", token, {
secure: true,
httpOnly: true,
sameSite: "lax", // or "strict" for maximum protection
path: "/",
});Bir cookie'yi __Host- olarak adlandırmak, tarayıcıyı Secure, Path=/ ve Domain olmadan zorunlu kılar — oturum cookie'leri için güçlü, kendi kendini uygulayan bir temel.
Gerçekten cross-site cookie'lere ihtiyacın varsa, SameSite=None yalnızca Secure de ayarlıysa dikkate alınır; aksi hâlde modern tarayıcılar cookie'yi düşürür.
SSS
SameSite için Lax mı Strict mi?
Lax, üst düzey gezinmelere hâlâ izin veren güvenli bir varsayılandır. Strict daha sıkıdır ama kullanıcıların oturum açmış olmayı beklerken harici bağlantılardan geldiği akışları bozabilir.
Bu flag'ler XSS'i durdurur mu?
HttpOnly, cookie'yi gizleyerek XSS'in hasarını sınırlar ama XSS'i önlemez. Onu güçlü bir Content-Security-Policy ile birlikte kullan.
Uygulaman etkileniyor mu?
AppSafe, bunu ve onlarca başka sorunu tek bir ücretsiz taramada kontrol eder.
Uygulamamı ücretsiz tara