Birinci taraf kurabiye tarifleri

Üçü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.

Milica Mihajlija
Milica Mihajlija

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

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ı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 ö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 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.

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;