Birinci taraf kurabiye tarifleri

Üçüncü taraf çerezleri kullanımdan kaldırıldıktan sonra güvenliği sağlamak, tarayıcılar arası uyumluluğu sağlamak ve bozulma olasılığını en aza indirmek için birinci taraf çerezlerinin nasıl ayarlanacağını öğrenin.

Milica Mihajlija
Milica Mihajlija

Çerezler, kullanıcının bağlamına göre birinci taraf veya üçüncü taraf olabilir; kullanıcının o anda hangi sitede bulunduğuna bağlı olarak değişir. Çerezin kaydedilebilir alan adı ve şeması mevcut üst düzey sayfayla eşleşirse, yani tarayıcının adres çubuğunda görüntülenen çerez, 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, örneğin sitelerde kullanılmıyorsa sitenizdeki oturumları yönetmek için kullanılıyorsa ve hiçbir zaman siteler arası 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 ile erişilebilir ve HTTP bağlantıları üzerinden gönderilebilir. Bu da bazı gizlilik ve güvenlik risklerini beraberinde getirir. Varsayılan davranışı iyileştirmek için çalışmalarımız devam ediyor. Bununla birlikte, Özel Korumalı Alan ve kaynaklara bağlı çerezler gibi diğer teklifler aracılığıyla çerezlerinize ek özellikler ayarlayarak bugün yapabileceğiniz birç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 işlem, size yalnızca gerekli olduğunda izinleri açmak için 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.

Yemek tarifi

Set-Cookie:
__Host-cookie-name=cookie-value;
Secure;
Path=/;
HttpOnly;
Max-Age=7776000;
SameSite=Lax;
Ayrıntılar

Host , bazı özellikleri zorunlu kılarken diğerlerini yasaklayan isteğe bağlı bir ön ektir:

  • Secure mevcut olmalıdır
  • Domain atlanmalıdır
  • Path, / olmalıdır

Host eklendiğinde, tarayıcının bu özelliklerin __Host kurallarına uygun olup olmadığını kontrol etmesine güvenebilir ve ayarlamamışsa çerezi reddedebilirsiniz.

Secure, çerezlerin güvenli olmayan ağlarda çalınmasını engeller. Çünkü yalnızca HTTPS bağlantıları üzerinden çerez gönderilmesine izin verir. Sitenizi HTTPS'ye tamamen taşımadıysanız buna öncelik verin.

Domain özelliği, hangi ana makinelerin çerez alabileceğini belirtir. Bu parametrenin atlanması, alt alan adları hariç olmak üzere çerezi geçerli belge ana makinesiyle kısıtlar: example.com çerezi, her example.com isteğinde gönderilir ancak images.example.com için gönderilen isteklerde gönderilmez. Farklı alt alan adlarında çalışan farklı uygulamalarınız varsa bu, güvenliği ihlal edilmiş bir alanın diğerlerine giriş yapılmasına izin verme riskini azaltır.

Path, tarayıcının Cookie üstbilgisini göndermesi için istenen URL'de bulunması gereken yolu belirtir. Path=/ politikasının ayarlanması, çerezin söz konusu alandaki tüm URL yollarına gönderileceğ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 olanak tanır ve document.cookie kullanılarak JavaScript'te kullanılamaz.

Tarayıcı oturumları oldukça uzun sürebildiğinden ve eski çerezlerin sonsuza kadar kalmasını istemezsiniz. Bu nedenle Max-Age, çerezlerin ömrünü sınırlar. Kullanıcı oturumları gibi kısa süreli çerezler ve form gönderme jetonları gibi daha kısa süreli çerezler için uygundur. Max-Age, saniye cinsinden tanımlanır ve önceki örnekte 7776000 saniye, yani 90 gün olarak ayarlanmıştır. Bu, kullanım alanınıza bağlı olarak değiştirebileceğiniz makul bir varsayılan değerdir.

SameSite=Lax, çerezi yalnızca aynı siteye yapılan isteklerde gönderilecek şekilde kısıtlar. Diğer bir deyişle, isteğin geçerli göz atma bağlamıyla eşleştiği (kullanıcının o anda ziyaret etmekte olduğu ve konum çubuğunda görüntülenen üst düzey site) istek. 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 açık bir şekilde yalnızca aynı site olarak işaretlediğinizde çerezi birinci taraf bağlamlarınızla sınırlandırmış olursunuz ve üçüncü taraf çerezleri kaldırıldığında ilgili çerezde değişiklik yapmanız gerekmez.

Farklı çerez özellikleri hakkında daha fazla bilgi edinmek için MDN ile ilgili Set-Cookie dokümanlarına göz atın.

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, konular için finance.news.site ve sport.news.site gibi alt alan adlarına sahip olabilir ve bunların tümünde tek bir kullanıcı oturumu olmasını istersiniz. 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;
Ayrıntılar

Secure , kriterinden daha az şartı yerine getiren isteğe bağlı bir önektirHost: Yalnızca çerezin Secure özelliğiyle ayarlanmasını gerektirir.

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.

SameSite=Strict ile çerez erişimini daha da kısıtlayabilir ve üçüncü taraf web sitelerinden başlatılan isteklerle birlikte çerez gönderimine izin vermemeyi tercih edebilirsiniz. Bu, şifre değiştirme veya satın alma gibi işlemlerde her zaman ilk gezinmenin arkasında olacak işlevlerle ilgili çerezleriniz olduğunda yararlıdır.

Yemek tarifi

Set-Cookie:
__Host-cookie-name=cookie-value;
Secure;
Path=/;
HttpOnly;
Max-Age=7776000;
SameSite=Strict;