Çerez özellikleri

Bir web sunucusu, kaynak isteği aldığında yanıtıyla birlikte bir Set-Cookie üstbilgisi ekleyebilir. Bu başlık, tarayıcınızda bir çerez depolanmasını sağlar. Örneğin: Set-Cookie:cat=tabby. Çerezler nedir? başlıklı makalede çerezlerin işleyiş şekli açıklanmaktadır.

Set-Cookie, çerez adı ve değeri sağlamanın yanı sıra çerezlerin ayarlanıp ayarlanmadığı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 makalede, 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 başlığı Secure içeriyorsa çerez yalnızca HTTPS protokolünü kullanan şifrelenmiş isteklerle birlikte eklenir. Çerez, HTTP isteklerine dahil edilmez. Bu sayede, saldırganların bilgi aktarmak ve değiştirmek için tarayıcı ile sunucu arasındaki iletişime gizlice müdahale ettiği aracı saldırıları önlenebilir.

👉 Tüm çerezler için varsayılan olarak Secure eklemeniz gerekir.

HTTPOnly

Bir Set-Cookie üstbilgisinde HTTPOnly varsa çereze document.cookie kullanılarak erişilemez. Bu, çerezleri hedefleyen belirli saldırı türlerine karşı koruma sağlar.

👉 Tüm çerezler için varsayılan olarak HTTPOnly eklemeniz gerekir. Yalnızca JavaScript kullanarak çerez değerlerini ayarlayabilmeniz ve alabilmeniz gerekiyorsa atlayın.

SameSite

Ziyaret ettiğiniz siteden farklı bir sitedeki bir kaynağa yönelik istek, siteler arası istektir. Siteler arası bir isteğe yanıt olarak ayarlanan çerezler üçüncü taraf çerezleri olarak bilinir.

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

👉 Hiçbir değer ayarlanmazsa varsayılan değer SameSite=Lax olur. SameSite=None, siteler arası çerezlere izin verir ancak üçüncü taraf çerez kısıtlamalarının geçerli olduğu yerlerde çerezlerin engelleneceği anlamına gelir.

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 çerezi olduğunu varsayalım. Daha sonra kullanıcı farklı bir sitedeyken cats.example'teki bir sayfaya giden bir bağlantıyı tıklar. Ayarlanan çerez bu isteğe dahil edilmez.

Lax

Bu, Strict ile aynı şekilde çalışır. Bunun tek farkı, kullanıcı çerezin kaynak sitesinin bağlantısını izlediğinde tarayıcının çerezi de dahil etmesidir. (Önceki Strict örneğinde, kullanıcı cats.example bağlantısını izlediğinde çerez eklenir.) Set-Cookie başlığına SameSite özelliği eklenmemişse varsayılan değer Lax'tir.

Yok

Kısıtlama yok: Çerez, siteler arası olup olmadığına bakılmaksızın bir isteğe eklenir. SameSite=None ile birlikte çerezde Secure özelliği de olmalıdır.

Bölünmüş

Bu özellik, üst düzey site başına ayrı bir "çerez kabı" ile bir çerezi bölünmüş depolama için etkinleştirmenize olanak tanır. Çerez, üst düzey sitenin yanı sıra çerezi ayarlayan alan tarafından çift anahtarlıdır.

Örneğin, A web sitesinin ve B web sitesinin her ikisinin de C web sitesinden bir iframe içerdiğini 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 çerezi ile ayrıdır.

👉 Üçüncü taraf çerezi oluşturuyorsanız birden fazla yerleşimde paylaşılması gerektiğini açıkça bilmediğiniz sürece varsayılan olarak Partitioned özelliğini eklemeniz gerekir.

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

Partitioned özelliğine sahip çerezler, Bağımsız Bölümlendirme Durumuna Sahip Çerezler (CHIPS) olarak bilinir.

Bölümlendirilmiş çerezlerde Secure özelliği olmalıdır.

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

Expires ve Max-Age

Bir çerezin silinmesi ve artık gönderilmemesi için Expires tarih ve saati veya saniye cinsinden bir Max-Age 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ğini belirtmezseniz çerez, geçerli oturum sona erdiğinde silinir. Bu tür çerezler bazen oturum çerezi olarak bilinir.

👉 Geçerli oturumdan daha uzun süreli bir çereğe ihtiyacınız yoksa Max-Age ve Expires özelliklerini çıkarın. Tarayıcılar çerezlerin süresini sonlandırır. Bu nedenle, yıllar sonra sona erecek bir süre ayarlamanıza gerek yoktur. Bunun yerine, kullanıcı sitenizi yeniden ziyaret ettiğinde çerezleri yenilemeyi düşünebilirsiniz.

Alan

Bir Set-Cookie başlığında Domain özelliği varsa çerez, belirtilen alana ve alt alanlarından herhangi birine yapılan isteklerle birlikte eklenir.

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ğini eklemek alan kısıtlamalarını azaltmaktadır.

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

  • Set-Cookie:cat=tabby
    Çerez yalnızca cats.example adresine yapılan istekler için eklenir.
  • Set-Cookie:cat=tabby; Domain=cats.example
    Çerez, cats.example'ye yapılan istekler ve fluffy.cats.example veya user.assets.cats.example gibi alt alanlardaki kaynaklarla ilgili tüm istekler için eklenir.

👉 Alt alan adlarına yapılan isteklerle birlikte bir çerezin eklenmesi gerekiyorsa Domain özelliği eklemeyin.

Path

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

Örneğin:

  • Set-Cookie:cat=tabby; Path=/articles
    Çerez, /articles ile başlayan herhangi bir URL yoluna yapılan istek için eklenir:
    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 isteklerle birlikte eklenir. Örneğin, cats.example/images/tabby.jpg. isteği üzerine bir cat=tabby çerezinin ayarlandığını düşünün. Path ayarlanmazsa çerez yalnızca cats.example/images dizinindeki dosya isteklerine eklenir.

👉 Sitenizdeki herhangi bir yola yapılan tüm isteklerin çerezi içermesi gerekiyorsa Path=/ öğesini çerezle birlikte ekleyin. Güvenlik koruması için Path'e güvenmeyin.

Demolar

Araçlar

Daha fazla bilgi