Çerez özellikleri

Bir web sunucusu, kaynak isteğine yanıt verirken yanıtıyla birlikte Set-Cookie üstbilgisini de ekleyebilir. Bu başlık, tarayıcınıza bir çerez depolamasını söyler. Örneğin: Set-Cookie:cat=tabby. Çerezler nedir? başlıklı makalede çerezlerin nasıl çalıştığı açıklanmaktadır.

Çerez adı ve değeri sağlamanın yanı sıra Set-Cookie, çerezlerin ayarlanıp ayarlanmayacağını ve ne zaman sona ereceğini kontrol etmek için özellikler içerebilir. Çerez özellikleri noktalı virgülle ayrılır. Örneğin:

    Set-Cookie:cat=tabby; Secure; HTTPOnly; Expires=Tue, 31 Dec 2999 23:59:59 GMT;

Bu belgede en önemli çerez özellikleri açıklanmaktadır:

HTTP çerezlerini kullanma başlıklı makalede çerez özellikleri daha teknik bir şekilde açıklanmaktadır.

Güvenli

Bir Set-Cookie üst bilgisi Secure içeriyorsa çerez yalnızca HTTPS protokolünü kullanan şifrelenmiş isteklerle birlikte gönderilir. Çerez, HTTP isteklerine dahil edilmez. Bu, saldırganın bilgileri iletmek ve muhtemelen değiştirmek için tarayıcı ile sunucu arasındaki iletişime gizlice müdahale ettiği aracı saldırılarını durdurmaya yardımcı olabilir.

HTTPOnly

Bir Set-Cookie başlığı HTTPOnly içeriyorsa JavaScript, örneğin document.cookie kullanarak çerezlere erişemez. Bu, çerezleri hedefleyen belirli saldırı türlerine karşı koruma sağlar.

SameSite

Ziyaret ettiğiniz siteden farklı bir siteden kaynak isteğinde bulunmak siteler arası bir istektir. Siteler arası bir isteğe yanıt olarak ayarlanan çerez üçüncü taraf çerezidir.

SameSite özelliği, bir isteğe üçüncü taraf çerezinin dahil edilip edilmeyeceğini kontrol eder. Üç olası değeri vardır: Strict, Lax veya None.

Daha fazla bilgi: Üçüncü taraf çerezleri nedir?

Katı

Çerez yalnızca, çerezin kaynak sitesindeki bir sayfadan gelen isteklere yanıt olarak gönderilir. Örneğin, bir kullanıcının cats.example adresini ziyaret ettiğini ve SameSite=Strict özelliğiyle ayarlanmış bir çerezinin olduğunu düşünelim. Daha sonra kullanıcı farklı bir sitede bulunur ve cats.example üzerindeki bir sayfanın bağlantısını tıklar. Ayarlanan çerez bu isteğe dahil edilmez.

Lax

Bu, Strict ile aynı şekilde çalışır. Ancak kullanıcı, çerezin kaynak sitesine giden bir bağlantıyı tıkladığında tarayıcı da çerezi içerir. (Önceki Strict örneğinde, kullanıcı cats.example bağlantısını tıkladığında çerez eklenir.) Set-Cookie üstbilgisinde SameSite özelliği yoksa Lax varsayılandır.

Yok

Kısıtlama yok: Çerez, siteler arası olup olmadığına bakılmaksızın isteğe dahil edilir. SameSite=None ile tanımlanan çerezde Secure özelliği de bulunmalıdır.

Bölünmüş

Bu özellik, üst düzey site başına ayrı bir "çerez kavanozu" ile çerezleri bölümlendirilmiş depolamaya dahil etmenize olanak tanır. Çerez, hem üst düzey site hem de onu ayarlayan alan tarafından çift anahtarlı olarak oluşturulur.

Örneğin, A web sitesi ve B web sitesinin her ikisinde de C web sitesinden bir iFrame olduğunu varsayalım. A web sitesindeki iFrame tarafından ayarlanan bölümlendirilmiş bir çereze B web sitesindeki iFrame tarafından erişilemez: AC çerezi, BC çerezinden ayrıdır.

Ortak bir üçüncü tarafı yerleştiren iki farklı web sitesinin artık bu üçüncü tarafın çerezlerini paylaşmayacağını gösteren şema.
Çerez bölümleme sayesinde, bir üst düzey siteye yerleştirildiğinde çerez ayarlayan bir üçüncü taraf hizmeti, hizmet diğer üst düzey sitelere yerleştirildiğinde aynı çereze erişemez.

Partitioned özelliği olan çerezler, CHIPS (Cookies Having Independent Partitioned State) olarak bilinir.

Bölümlendirilmiş çerezler Secure özelliğine sahip olmalıdır.

Daha fazla bilgi: Bağımsız Bölümlendirme Durumuna Sahip Çerezler.

Expires ve Max-Age

Çerezlerin silinmesi ve artık gönderilmemesi gereken Expires tarihi ve saati veya Max-Age süresini (saniye cinsinden) belirtebilirsiniz. Örneğin:

  • Set-Cookie:cat=tabby; Expires=Tue, 31 Dec 2999 23:59:59 GMT;
  • Set-Cookie:cat=tabby; Max-Age=86400

Max-Age veya Expires özelliği belirtmezseniz geçerli oturum sona erdiğinde çerez silinir. Bu tür çerezlere bazen oturum çerezi adı verilir.

Alan

Bir Set-Cookie üstbilgisinde Domain özelliği varsa çerez, belirtilen alan adına ve alt alan adlarına yapılan isteklerle birlikte gönderilir.

Bir Set-Cookie başlığında Domain özelliği yoksa çerez, alt alan adlarına yapılan isteklere dahil edilmez.

Başka bir deyişle, Domain özelliğinin eklenmesi alan kısıtlamalarını azaltır.

Örneğin, web sitesinden gelen bir yanıtla cats.example:

  • Set-Cookie:cat=tabby
    Çerez yalnızca cats.example adresine yapılan isteklerle birlikte gönderilir.
  • Set-Cookie:cat=tabby; Domain=cats.example
    Çerez, cats.example adresine yapılan isteklerin yanı sıra fluffy.cats.example veya user.assets.cats.example gibi alt alanlardaki kaynak isteklerine de dahil edilir.

Path

Bir Path özelliği bir Set-Cookie yanıt başlığına dahil edilirse ayarlanan çerez yalnızca Path değeriyle eşleşen URL'lere (çerezi ayarlayan sitedeki) yapılan isteklere dahil edilir.

Örneğin:

  • Set-Cookie:cat=tabby; Path=/articles
    Çerez, /articles ile başlayan herhangi bir URL yolu isteğine dahil edilir:
    https://cats.example/articles/tabby/index.html
    https://cats.example/articles/breeds/tabby/index.html
    https://cats.example/images/tabby.jpg
    https://cats.example/en/articles/tabby/index.html
  • Set-Cookie:cat=tabby; Path=/
    Sitedeki herhangi bir URL'ye yapılan tüm istekler çerezi içerir.

Bir Set-Cookie yanıt başlığında Path değeri yoksa çerez yalnızca aynı dizine yapılan isteklere dahil edilir. Örneğin, cats.example/images/tabby.jpg. isteğine yanıt olarak bir cat=tabby çerezinin ayarlandığını düşünün. Path ayarlanmazsa çerez yalnızca cats.example/images dizinindeki dosya isteklerine dahil edilir.

Demolar

Araçlar

Daha fazla bilgi