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.

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ızcacats.example
adresine yapılan istekler için eklenir.Set-Cookie:cat=tabby; Domain=cats.example
Çerez,cats.example
'ye yapılan istekler vefluffy.cats.example
veyauser.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
- 1pc.glitch.me: birinci taraf çerezi demosu
- 3pc.glitch.me: üçüncü taraf çerez demo
Araçlar
- Chrome Geliştirici Araçları'nda çerezleri görüntüleme, ekleme, düzenleme ve silme
- Özel Korumalı Alan Analiz Aracı