- Katılım
- 21 May 2023
- Mesajlar
- 716
- Tepki
- 17
- Puan
- 18
Bir siteye giriş yapıyorsunuz, sayfayı değiştiriyorsunuz ve sistem sizi hâlâ tanıyor. Oysa her sayfa isteği kendi başına gidip geliyor ve sunucunun aradaki bağı hatırlaması için özel bir şey gerekiyor. O şeyin adı çerez.
Bu yazı çerezin teknik olarak ne olduğunu, oturumun nasıl sürdürüldüğünü, hangi niteliklerin güvenliği belirlediğini ve tarayıcı tarafında hangi denetimlerin bulunduğunu MDN'in rehberine, IETF metnine ve Chrome'un yardım sayfasına bakarak topluyor.
Tanım
MDN'in çerez rehberi, çerezi sunucunun kullanıcının tarayıcısına gönderdiği küçük bir veri parçası olarak tanımlıyor. Tarayıcı bu veriyi saklayabiliyor, yeni çerezler oluşturabiliyor, var olanları değiştirebiliyor ve sonraki isteklerde aynı sunucuya geri gönderebiliyor.
Rehber varlık sebebini de açıklıyor: çerezler web uygulamalarının sınırlı miktarda veri saklamasına ve durum bilgisini hatırlamasına imkân veriyor, çünkü HTTP protokolü varsayılan olarak durumsuz çalışıyor.
Oturum nasıl sürüyor?
Rehberin verdiği giriş akışı mekanizmayı adım adım gösteriyor. Kullanıcı kimlik bilgilerini gönderiyor; bilgiler doğruysa sunucu, tarayıcıda oturum durumunu kaydeden bir oturum kimliği içeren çerezle yanıt veriyor.
Kullanıcı aynı sitede başka bir sayfaya geçtiğinde tarayıcı o çerezi ilgili istekle birlikte gönderiyor. Sunucu oturum kimliğini denetliyor ve hâlâ geçerliyse kullanıcıya buna uygun yanıtı veriyor.
Rehbere göre sunucu tipik olarak çerez içeriğini, farklı isteklerin aynı tarayıcı ya da kullanıcıdan gelip gelmediğini anlamak ve buna göre kişiselleştirilmiş veya genel bir yanıt üretmek için kullanıyor.
Standart ne diyor?
Çerezleri tanımlayan RFC 6265, belgenin HTTP Cookie ve Set-Cookie başlık alanlarını tanımladığını söylüyor. Metne göre bu alanlar, sunucuların kullanıcı aracısında durum saklamasına ve büyük ölçüde durumsuz olan HTTP üzerinde durumlu bir oturum sürdürmesine imkân veriyor.
Metin dürüst bir uyarı da içeriyor: çerezlerin güvenliği ve gizliliği zayıflatan tarihsel kusurları bulunmasına rağmen bu başlık alanları internette yaygın biçimde kullanılıyor.
- Set-Cookie: Sunucunun ad/değer çiftlerini ve ilgili üstveriyi tarayıcıya geçirdiği başlık.
- Cookie: Tarayıcının sonraki isteklerde bu veriyi geri gönderdiği başlık.
- Sonuç: Durumsuz protokol üzerinde durumlu bir oturum.
Hangi nitelikler güvenliği belirliyor?
MDN'in rehberi iki niteliği ayrı ayrı anlatıyor. Secure niteliğine sahip bir çerez sunucuya yalnız HTTPS üzerinden, şifreli istekle gönderiliyor.
HttpOnly ise erişimi kısıtlıyor: bu nitelikle oluşturulan çereze JavaScript üzerinden, örneğin belge çerez arabirimiyle erişilemiyor. Rehbere göre nitelik ayarlanmamışsa JavaScript bilgiyi okuyabiliyor ve değiştirebiliyor.
Püf nokta' Alıntı:Oturum çerezine JavaScript erişebiliyorsa, sayfadaki her betik o oturumu görebilir.
İkinci başlıktaki risk, sayfaya dışarıdan kod girmesi durumunda büyüyor. Girdinin doğrulanmadan çıktıya yazılmasıyla ortaya çıkan tabloyu ayrı bir yazıda ele almıştık; oturumun ele geçmesi ihtimaline karşı ikinci bir doğrulama katmanının nasıl kurulduğunu ise iki faktörlü doğrulama yazımızda anlatmıştık.
Tarayıcı tarafındaki denetimler
Chrome'un site ayarları yardım sayfası, varsayılan ayarları değiştirmeden tek bir sitenin izinlerinin belirlenebildiğini anlatıyor. Sayfa üçüncü taraf çerezlerini de tanımlıyor: ziyaret ettiğiniz bir site, başka sitelerden resim, reklam ve metin gibi içerikler yerleştirebiliyor ve diğer siteler tarafından ayarlanan çerezlere üçüncü taraf çerezleri deniyor.
Aynı sayfa, ziyaret edilen tüm sitelerde izinleri ve siteler arasında depolanan verileri toplu olarak görüntüleme seçeneğinin bulunduğunu da belirtiyor. Yani hangi sitenin ne sakladığını tek bir ekrandan görmek mümkün.
İzin verme seçenekleri neye benziyor?
Chrome'un yardım sayfası, site bir özelliği kullanmak için izin istediğinde üç seçenek sunulduğunu anlatıyor: bu defalık izin vermek, siteyi ziyaret ederken izin vermek ve hiçbir zaman izin vermemek.
Birinci seçenekte site özelliği yalnız o ziyaret boyunca kullanabiliyor ve sonraki ziyaretlerde yeniden izin istemesi gerekiyor. İkincisinde izin sonraki ziyaretleri de kapsıyor. Bu ayrım, tarayıcının kalıcı ile geçici arasında nasıl bir çizgi çektiğini de gösteriyor.
Şifre yerine ne konuyor?
Oturum çerezi bir kimlik doğrulama aracı değil, doğrulama sonrasında verilen bir bilet. Bu ayrım, kimlik doğrulamanın kendisini güçlendiren yöntemleri de gündeme getiriyor; kurtarma planının nasıl kurulacağını passkey yazımızda ele almıştık.
Ağ tarafında da benzer bir ayrım var: bağlantının nereden çıktığını gizlemek, tarayıcıda saklanan veriyi ortadan kaldırmıyor. Bu iki katmanın karıştığı yerleri VPN sızıntı testi yazımızda göstermiştik.
Sık Sorulan Sorular
Çerez nedir?
MDN'in tanımıyla, sunucunun tarayıcıya gönderdiği ve tarayıcının sonraki isteklerde aynı sunucuya geri gönderebildiği küçük bir veri parçası.
Neden gerekiyor?
HTTP varsayılan olarak durumsuz; çerezler sınırlı veriyi saklayıp durum bilgisini hatırlamayı sağlıyor.
Oturum çerezi ne taşıyor?
Rehberdeki akışta çerez, tarayıcıda oturum durumunu kaydeden bir oturum kimliği taşıyor.
Secure ve HttpOnly ne yapıyor?
Secure çerezi yalnız HTTPS üzerinden gönderiyor; HttpOnly ise JavaScript'in çereze erişmesini engelliyor.
Üçüncü taraf çerezi ne demek?
Chrome'un tanımıyla, ziyaret ettiğiniz sitenin yerleştirdiği içerikler üzerinden diğer siteler tarafından ayarlanan çerezler.
Özetle
Çerez, sunucunun tarayıcıya bıraktığı ve geri aldığı küçük bir veri parçası; durumsuz HTTP üzerinde oturumu bu sayede sürdürüyoruz. Standart, başlık alanlarını tanımlarken tarihsel güvenlik kusurlarını da açıkça anıyor. Secure ve HttpOnly nitelikleri çerezin nereye ve kime açık olduğunu belirliyor; tarayıcı tarafında ise izinler site site denetlenebiliyor.
Sitenizdeki oturum çerezinin hangi niteliklerle gönderildiğini kontrol ettiniz mi?
Güncelleme: 1 Eylül 2026. MDN'in HTTP çerezleri rehberi, IETF'in RFC 6265 metni ve Chrome'un site ayarları yardım sayfası kontrol edildi.
Dijital Dünyanıza Yön Veren Pusula