Üçü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 o anda hangi sitede bulunduğuna bağlı olarak kullanıcının bağlamına göre 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. Varsayılan davranışı iyileştirmek için Özel Korumalı Alan ve kaynak bağlı çerezler gibi diğer öneriler aracılığıyla devam eden çalışmalar olsa da çerezlerinizde ek özellikler ayarlayarak bugünden itibaren çok şey yapabilirsiniz.
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 ayrıca bazı belirli kullanım durumlarına ilişkin tarif 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ılarken diğerlerini yasaklayan isteğe bağlı bir ön ektir:
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 öncelikli hale 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
'e 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=/
kombinasyonu, çerezin kaynağa mümkün olduğunca yakın olmasını sağlar. Böylece, LocalStorage
gibi diğer istemci tarafı depolama alanlarına benzer şekilde davranır. example.com/a
, example.com/b
için farklı değerler alabilir.
HttpOnly
özelliği, JavaScript erişimini kısıtlayarak sitelerinizde 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 çerezleri JavaScript'in kullanamamasını sağlar.
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 değerdir.
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ılandır ancak farklı varsayılanlara sahip tarayıcılar ile uyumluluk için bu seçeneği 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 adları olan bir siteniz varsa ve bunların tümünde tek bir oturum olmasını istiyorsanız Host
öneki ç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.
Yemek tarifi
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önderilmese de (örneğin, bir üçüncü taraf sitesine yerleştirilmiş resimler veya iframe'ler yüklenirken) kullanıcı kaynak siteye giderken (örneğin, farklı bir sitedeki 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;