Birinci taraf kurabiye tarifleri

Üçüncü taraf çerezleri kullanımdan kaldırıldığında güvenlik, tarayıcı uyumluluğu sağlamak ve kesinti olasılığını en aza indirmek için birinci taraf çerezlerini nasıl ayarlayacağınızı öğrenin.

Milica Mihajlija
Milica Mihajlija

Ç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.

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;
Ayrıntılar

Host , bazı özellikleri zorunlu kılan ve diğerlerini yasaklayan isteğe bağlı bir önektir:

  • Secure mevcut olmalıdır
  • Domain atlanmalıdır
  • Path, / 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'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önderebilmesi 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ı 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;
Ayrıntılar

Secure , Host'ten daha az koşulu belirten isteğe bağlı bir ön ektir: Yalnızca çerezin Secure özelliğiyle ayarlanmasını gerektirir.

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;