Çerezler oturum kimliği gibi hassas veriler taşıdığından, yanlış ayarlandıklarında hesap ele geçirmeye kapı açar. HTTPS taşıma güvenliğini sağlar; çerez bayrakları ise tarayıcının çerezi nasıl kullanacağını kısıtlar. İkisi birlikte uygulanmalıdır.
Temel bayraklar
- Secure: Çerez yalnızca HTTPS bağlantısında gönderilir.
- HttpOnly: JavaScript çereze erişemez; XSS ile çalınma zorlaşır.
- SameSite: Çerezin siteler arası isteklerde gönderilmesini sınırlar.
Strict,LaxveNonedeğerleri vardır;NonekullanılıyorsaSecureda gerekir. - Domain / Path: Çerezin hangi alan adı ve yollarda geçerli olacağını daraltır.
- __Host- öneki: Secure, Path=/ ve Domain olmaması şartlarını tarayıcıda zorunlu kılar.
Örnek yanıt başlığı
Set-Cookie: __Host-oturum=abc123; Path=/; Secure; HttpOnly; SameSite=Lax
Uygulama
- Tüm siteyi HTTPS'e taşıyıp HSTS ekleyin.
- Uygulamanızın çerez üreten tüm noktalarında bayrakları ayarlayın.
- Web sunucusu veya proxy seviyesinde zorlamak için örnek Nginx:
proxy_cookie_flags ~ secure httponly samesite=lax;
Bu yönerge Nginx 1.19.3 ve sonrasında kullanılabilir; eski sürümlerde uygulama tarafında ayarlayın.
Doğrulama
- Tarayıcı geliştirici araçlarında Application > Cookies bölümünde bayrakları kontrol edin.
curl -sI https://alanadi.comçıktısındakiSet-Cookiesatırlarını inceleyin.
Sık hatalar
- Secure bayrağını eklemek ama sitenin bir kısmını HTTP bırakmak; çerez o sayfalara gönderilmez ve oturum kopar.
- Analitik veya tercih çerezleri dışında kalan tüm çerezleri HttpOnly yapmamak.
- SameSite=None kullanıp gerekçesini sorgulamamak.
Ek notlar
Üçüncü taraf çerezlerinin tarayıcı politikaları sürekli değiştiğinden, uygulamanız için gerekli olan çerezleri ilk taraf olarak tasarlamak daha dayanıklıdır. Çerezde tutulan veriyi en aza indirin; hassas bilgiyi çerez yerine sunucu tarafındaki oturumda saklayın. Çerez adlarında uygulama ve sürüm bilgisi sızdırmamaya özen gösterin.
Geçerli bir SSL sertifikası bu ayarların temelidir. Kurulum sonrası genel kontrol için SSL denetleyici, hata durumlarında SSL sorun giderici kullanılabilir.