Üçüncü taraf çerezleri kullanımdan kaldırıldığında güvenlik, tarayıcı uyumluluğu ve kesinti olasılığını en aza indirmek için birinci taraf çerezlerini nasıl ayarlayacağınızı öğrenin.
Çerezler, kullanıcının bağlamına göre (kullanıcı o anda hangi sitedeyse) birinci taraf veya üçüncü taraf olabilir. Çerezin kaydedilebilir alanı ve şeması, mevcut üst düzey sayfayla (yani tarayıcının adres çubuğunda gösterilen sayfayla) eşleşiyorsa çerezin sayfayla aynı siteden olduğu kabul edilir ve genellikle birinci taraf çerezi olarak adlandırılır.
Mevcut site dışındaki alanlardan gelen çerezlere genellikle üçüncü taraf çerezleri denir.
İyi birinci taraf çerez tarifi
Ayarladığınız çerez siteler arasında kullanılmıyorsa (ör. sitenizdeki oturumları yönetmek için kullanılıyorsa ve hiçbir zaman siteler arası bir iFrame'de kullanılmıyorsa) bu çerez her zaman birinci taraf bağlamında kullanılır.
Varsayılan olarak çerezler siteler arasında paylaşılabilir, JavaScript tarafından erişilebilir ve HTTP bağlantıları üzerinden gönderilebilir. Bu da bazı gizlilik ve güvenlik riskleri taşır. Özel Korumalı Alan ve kaynak bağlı çerezler gibi diğer öneriler aracılığıyla varsayılan davranışı iyileştirmeye yönelik çalışmalar devam ederken, çerezlerinizde ek özellikler ayarlayarak hemen yapabileceğiniz çok şey var.
Aşağıdaki yapılandırma, çoğu birinci taraf çerezi için güvenlik ve tarayıcılar arası uyumluluk sağlayan en iyi uygulamadır. Bu, yalnızca gerektiğinde izinleri açacak şekilde ayarlayabileceğiniz güvenli bir temel sağlar. Bu makalede, belirli kullanım alanlarına yönelik yemek tarifi varyasyonları da ele alınmaktadır.
Tarif
Set-Cookie:
__Host-cookie-name=cookie-value;
Secure;
Path=/;
HttpOnly;
Max-Age=7776000;
SameSite=Lax;
Host
, bazı özellikleri zorunlu kılan ve diğerlerini yasaklayan isteğe bağlı bir önektir:
Secure
mevcut olmalıdırDomain
atlanmalıdırPath
,/
olmalıdır
Host
eklendiğinde, bu özelliklerin __Host
kurallarına uygun şekilde ayarlanıp ayarlanmadığını kontrol etmek için tarayıcıdan yararlanabilir ve ayarlanmamışsa çerezi reddedebilirsiniz.
Secure
, çerezlerin yalnızca HTTPS bağlantıları üzerinden gönderilmesine izin verdiğinden çerezlerin güvenli olmayan ağlarda çalınmasını önler. Sitenizi HTTPS'ye tamamen taşımadıysanız bunu öncelik haline getirin.
Domain
özelliği, hangi ana makinelerin çerez alabileceğini belirtir. Bu parametrenin atlanması, çerezi alt alan adları hariç olmak üzere geçerli doküman ana makinesiyle kısıtlar: example.com
çerezi, example.com
'e yapılan her istekte gönderilir ancak images.example.com
'a yapılan isteklerde gönderilmez. Farklı alt alan adlarında farklı uygulamalarınız varsa güvenliği ihlal edilmiş bir alanın diğer alanlara erişim izni verme riski azalır.
Path
, tarayıcının Cookie
üstbilgisini göndermesi için istenen URL'de bulunması gereken yolu belirtir. Path=/
ayarının yapılması, çerezin söz konusu alandaki tüm URL yollarına gönderildiği anlamına gelir. Domain
ve Path=/
'nin olmaması, çerezin kaynağa mümkün olduğunca yakın bir şekilde bağlanmasını sağlar. Bu nedenle, LocalStorage
gibi diğer istemci tarafı depolama alanlarına benzer şekilde davranır. example.com/a
'ın example.com/b
'den farklı değerler alabileceği konusunda herhangi bir karışıklık yoktur.
HttpOnly
özelliği, JavaScript erişimini kısıtlayarak sitelerinizdeki kötü amaçlı üçüncü taraf komut dosyalarına karşı bir miktar koruma sağlar. Bir çerezin yalnızca istek başlıklarında gönderilmesine izin verir ve document.cookie
kullanarak JavaScript'in çerezleri kullanmasını engeller.
Max-Age
, tarayıcı oturumları oldukça uzun sürebileceğinden ve eski çerezlerin sonsuza kadar kalmasını istemediğinizden çerezin ömrünü sınırlandırır. Kullanıcı oturumları gibi kısa süreli çerezler veya form gönderme jetonları gibi daha da kısa süreli çerezler için uygundur. Max-Age
saniye cinsinden tanımlanır ve önceki örnekte 90 gün olan 7776000 saniyeye ayarlanmıştır. Bu, kullanım alanınıza bağlı olarak değiştirebileceğiniz makul bir varsayılan ayardır.
SameSite=Lax
, çerezin yalnızca aynı site isteklerinde gönderilmesini kısıtlar. Yani, istek mevcut tarama bağlamıyla (kullanıcı konum çubuğunda gösterilen, şu anda ziyaret ettiği üst düzey site) eşleştiğinde. SameSite=Lax
, modern tarayıcılarda varsayılan olarak kullanılır ancak farklı varsayılanlara sahip olabilecek tarayıcılar arasında uyumluluk için bu değeri belirtmeniz önerilir. Çerezi yalnızca aynı site olarak açıkça işaretleyerek birinci taraf bağlamlarınızla kısıtlamış olursunuz. Üçüncü taraf çerezleri kullanımdan kaldırıldığında bu çerezde değişiklik yapmanız gerekmez.
Farklı çerez özellikleri hakkında daha fazla bilgi edinmek için Set-Cookie
MDN dokümanlarına göz atın.
Alt alan adı olan siteler için birinci taraf çerez tarifi
Alt alan adı içeren bir siteniz varsa ve bunların hepsinde tek bir oturum oluşturmak istiyorsanız Host
ön eki çok kısıtlayıcı olabilir. Örneğin, news.site
'te finance.news.site
ve sport.news.site
gibi konulara yönelik alt alan adları olabilir ve bunların hepsinde tek bir kullanıcı oturumu olmasını isteyebilirsiniz. Bu durumda, __Host
yerine __Secure
ön ekini kullanın ve Domain
değerini belirtin.
Tarif
Set-Cookie:
__Secure-cookie-name=cookie-value;
Secure;
Domain=news.site;
Path=/;
HttpOnly;
Max-Age=7776000;
SameSite=Lax;
Secure
, Host
'ten daha az koşulu belirten isteğe bağlı bir ön ektir: Yalnızca çerezin Secure
özelliğiyle ayarlanmasını gerektirir.
Üçüncü taraf web sitelerinden başlatılan isteklerde birinci taraf çerez erişimini kısıtlama
SameSite=Lax
çerezleri siteler arası alt isteklerde gönderilmez (örneğin, üçüncü taraf bir sitede yerleşik resimler veya iFrame'ler yüklenirken). Ancak kullanıcı kaynak siteye gittiğinde (örneğin, farklı bir sitedeki bir bağlantıyı takip ederken) gönderilir.
Çerez erişimini daha da kısıtlayabilir ve SameSite=Strict
ile üçüncü taraf web sitelerinden başlatılan isteklerle birlikte çerez gönderilmesine izin vermeyebilirsiniz. Bu, şifre değiştirme veya satın alma gibi her zaman ilk gezinme işleminin arkasında olacak işlevlerle ilgili çerezleriniz olduğunda yararlıdır.
Tarif
Set-Cookie:
__Host-cookie-name=cookie-value;
Secure;
Path=/;
HttpOnly;
Max-Age=7776000;
SameSite=Strict;