Cookie
- Türkçe karşılığı
- çerez
- Okunuşu
- kuki
Günlük kullanımda iki ad da yaygın.
Kısaca
Cookie, bir web sitesinin tarayıcıdan saklamasını ve sonraki isteklerle geri göndermesini istediği, çoğunlukla oturum açık tutmak için kullanılan küçük veridir.
Cookie nedir?
HTTP durumsuz olduğu için sunucunun bir isteği kimin gönderdiğine dair yerleşik bir hafızası yoktur. Cookie'ler bunu çözer: sunucu yanıtına bir Set-Cookie başlığı ekler, tarayıcı adı ve değeri kaydeder, ardından aynı siteye yapılan sonraki isteklerde bunları otomatik olarak bir Cookie başlığıyla gönderir.
Cookie'ler yaygın olarak oturumlar, alışveriş sepetleri, dil tercihleri ve analitik için kullanılır. Tipik bir oturum cookie'si, kullanıcının bilgilerini değil, yalnızca sunucuda saklanan verilere işaret eden rastgele bir kimlik (ID) tutar. Her cookie'nin bir son kullanma tarihi olabilir; yoksa tarayıcı oturumu bittiğinde silinir.
Nitelikler (attribute) bir cookie'nin ne kadar güvenli davranacağını belirler. HttpOnly onu JavaScript'ten gizler ve XSS saldırılarının zararını sınırlar; Secure yalnızca HTTPS üzerinden gönderilmesini sağlar; SameSite ise başka sitelerden gelen isteklerle birlikte gönderilip gönderilmeyeceğini belirler ve CSRF'ye karşı önemli bir savunmadır.
Cookie'yi vestiyer fişine benzetmek işe yarar: fiş küçüktür ve tek başına bir anlam taşımaz, ama sunucu paltonuzu onunla bulur. Cookie'ler sıklıkla localStorage ile karıştırılır; o da veriyi tarayıcıda saklar ama sunucuya otomatik olarak gönderilmez ve sayfadaki her betik tarafından okunabilir.
Bir bakışta
Önemli noktalar
- Sunucular cookie'leri
Set-Cookieyanıt başlığıyla ayarlar. - Tarayıcılar cookie'leri eşleşen isteklerde otomatik olarak geri gönderir.
- Oturum cookie'leri genellikle kullanıcı verisini değil, yalnızca rastgele bir kimlik saklar.
HttpOnly,SecureveSameSitecookie'leri daha güvenli hale getirir.localStorage'ın aksine cookie'ler, eşleşen her istekle sunucuya gider.
Örnek
# Server response after a successful login
HTTP/1.1 200 OK
Set-Cookie: session_id=a3f9c2e1; HttpOnly; Secure; SameSite=Lax; Max-Age=86400; Path=/
# Every later request from the browser includes it automatically
GET /account HTTP/1.1
Host: example.com
Cookie: session_id=a3f9c2e1Sık sorulan sorular
Cookie ile localStorage arasındaki fark nedir?
Cookie'ler eşleşen her istekle sunucuya otomatik olarak gönderilir ve HttpOnly ile JavaScript'ten gizlenebilir. localStorage ise tarayıcıda kalır, daha fazla veri tutar ve yalnızca sizin JavaScript kodunuz tarafından okunur ya da gönderilir.
Üçüncü taraf cookie'ler nedir?
Üçüncü taraf cookie'ler, adres çubuğundaki alan adından farklı bir alan adı tarafından, örneğin gömülü bir reklam ya da izleme betiği tarafından ayarlanır. Siteler arası izleme için yaygın kullanıldıklarından Safari ve Firefox gibi tarayıcılar bunları varsayılan olarak engeller.
Cookie'ler güvenli midir?
Cookie'ler program değil düz veridir; bu yüzden kod çalıştıramaz ya da bilgisayara bulaşamaz. Başlıca riskler çalınan oturum cookie'leri ve izlemedir; bunlar HttpOnly, Secure, SameSite ve kısa ömürlerle azaltılır.
Sık karşılaştırılanlar
- Cookie vs Local StorageCookie'ler, tarayıcının eşleşen her istekle sunucuya gönderdiği küçük verilerdir; local storage ise daha büyük veriyi tarayıcıda tutar ve hiç göndermez.
- Cookie vs OturumCookie, tarayıcının saklayıp her istekte gönderdiği küçük veridir; oturum ise sunucunun ziyaretçi için tuttuğu durumdur, cookie'deki bir kimlikle bulunur.
İlgili sayfalar
- HTTPWeb Geliştirme, s. 20HTTP, tarayıcıların, uygulamaların ve sunucuların basit bir istek-yanıt döngüsüyle web sayfaları ve veri alışverişi yapmasını sağlayan protokoldür.
- HTTPSGüvenlik, s. 15HTTPS, tarayıcı ile web sitesi arasındaki trafiği TLS ile şifreleyen, verileri dinlemeye ve değiştirilmeye karşı koruyan HTTP'nin güvenli sürümüdür.
- JWTGüvenlik, s. 17JWT, kullanıcı kimliği ve son kullanma zamanı gibi bilgileri taşıyan, imzalı ve kompakt bir token'dır; sunucunun oturum aramadan istekleri doğrulamasını sağlar.
- CSRFGüvenlik, s. 5CSRF, oturum açmış kullanıcının tarayıcısını güvenilir bir siteye istenmeyen istek göndermeye kandıran, sitenin de gerçek kullanıcı eylemi sandığı saldırıdır.
- XSSGüvenlik, s. 47XSS, saldırganın güvenilir bir siteye kötü amaçlı JavaScript enjekte edip bu kodu diğer kullanıcıların tarayıcısında çalıştırmasına yol açan zafiyettir.
- CORSWeb Geliştirme, s. 9CORS, bir sunucunun JavaScript'ten istek yapan hangi diğer sitelerin yanıtlarını okuyabileceğini bildirmesini sağlayan tarayıcı güvenlik mekanizmasıdır.
- HTTP BaşlığıWeb Geliştirme, s. 21HTTP başlığı, bir HTTP isteği ya da yanıtıyla gönderilen ad-değer satırıdır; içerik türü, önbellek kuralları ya da kimlik bilgileri gibi ayrıntıları taşır.
- Oturum Ele GeçirmeGüvenlik, s. 24Oturum ele geçirme, bir kullanıcının oturum kimliğini ya da token'ını çalarak veya tahmin ederek, parolasını bilmeden o kullanıcı gibi davranmaktır.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin