SameSite çerezleri hakkında açıklama

Tarayıcı Desteği

  • Chrome: 51..
  • Kenar: 16..
  • Firefox: 60..
  • Safari: 13..

Kaynak

Her çerez bir anahtar/değer çiftinin yanı sıra çerezin ne zaman ve nerede kullanılacağını kontrol edebilir.

SameSite özelliğinin kullanıma sunulması ( RFC6265bis) bakın çerezin birinci tarafla mı yoksa birinci tarafla mı sınırlı olduğunu emin olmanız gerekir. "Site"nin tam olarak ne anlama geldiğini anlamına geliyor. Site, alan adı sonekinin ve alan adının yalnızca girin. Örneğin, www.web.dev alanı web.dev sitesinin bir parçasıdır.

Anahtar terim: Kullanıcı www.web.dev üzerindeyse ve şuradan resim istiyorsa: static.web.dev, bu aynı siteye ait bir istektir.

Genel sonek listesi, hangi sayfaların aynı sitede bulunmalarını öneririz. Bu yalnızca .com gibi üst düzey alanlara bağlı değildir, ancak github.io gibi hizmetleri de içerebilir. Bu durumda, your-project.github.io ve my-project.github.io ayrı siteler olarak sayılır.

Anahtar terim: Kullanıcı your-project.github.io üzerindeyse ve şuradan resim istiyorsa: my-project.github.io, siteler arası istektir.

Çerez kullanımını bildirmek için SameSite özelliğini kullanın.

Bir çerezdeki SameSite özelliği, kontrol etmek için üç farklı yol sağlar davranıştan bahsedeceğiz. Özelliği belirtmemeyi seçebilir veya Çerezi aynı site istekleriyle sınırlamak için Strict veya Lax.

SameSite değerini Strict olarak ayarlarsanız çereziniz yalnızca bir birinci taraf bağlamı; yani çereze ait site, gösterilen siteyle eşleşiyorsa yazın. Dolayısıyla, promo_shown çerezi aşağıdaki gibi ayarlanırsa:

Set-Cookie: promo_shown=1; SameSite=Strict

Kullanıcı sitenizdeyken çerez, istekle birlikte beklendiği gibi gönderilir. Ancak kullanıcı, başka bir adresten sitenize gelen bir bağlantıyı izlerse, çerez bu ilk istekte gönderilmez. Bu özellik, her zaman başta (şifre değiştirme veya satın alma işlemi yapma gibi) değil, promo_shown gibi çerezler için kısıtlayıcı. Okuyucunuz bağlantıyı izlerse çerezin gönderilmesini ve bunun için tercihlerinin uygulanabilmesini ister.

SameSite=Lax, tarayıcının çerezi bu üst düzey ayarlarla göndermesine izin verir daha fazla bilgi edinebilirsiniz. Örneğin, başka bir site, sitenizin içeriğine referans veriyorsa Bunun için kedi fotoğrafınızı kullanıp makalenizin bağlantısını sağlayarak şöyle olur:

<p>Look at this amazing cat!</p>
<img src="https://blog.example/blog/img/amazing-cat.png" />
<p>Read the <a href="https://blog.example/blog/cat.html">article</a>.</p>

Lax değerine ayarlanmış bir çerezle:

Set-Cookie: promo_shown=1; SameSite=Lax

Tarayıcı, diğer kişinin blogu için amazing-cat.png isteğinde bulunduğunda çerez göndermez. Ancak okuyucu, Bu istek çerezi içerir.cat.html

SameSite web sitesini etkileyen çerezleri bu şekilde kullanmanızı öneririz. Lax için gösterilir ve kullanıcı işlemleriyle ilgili çerezler Strict için gösterilir.

Çerezin geçerli olmasını istediğinizi belirtmek için SameSite değerini de None olarak ayarlayabilirsiniz. her bağlamda gönderilir. Diğer sitelerin kullandığı bir hizmet sağlıyorsanız (örneğin, widget'lar, yerleştirilmiş içerikler, satış ortağı programları, reklamlar veya birden fazla sitede kullanıyorsanız amacınızın net olduğundan emin olmak için None kullanın.

Bağlamlarına göre None, Lax veya Strict (Katı) olarak etiketlenmiş üç çerez
Bir çerezin bağlamını açık bir şekilde None, Lax veya Strict olarak işaretleyin.

SameSite olmadan varsayılan davranışta yapılan değişiklikler

Tarayıcı Desteği

  • Chrome: 80..
  • Kenar: 86..
  • Firefox: Bir bayrağın arkasında.
  • Safari: desteklenmez..

SameSite özelliği geniş çapta desteklense de yaygın olarak kullanıma sunulmamıştır. Eskiden çerezlerin SameSite olmadan ayarlanması, çerezlerin varsayılan olarak tüm bağlamları kullanarak kullanıcıları CSRF'ye karşı savunmasız bırakır ve istemeden olabilir. Geliştiricileri niyetlerini belirtmeye teşvik etmek IETF teklifi, kullanıcılara daha güvenli bir deneyim Artımlı Olarak Daha İyi Çerezler iki önemli değişiklik ortaya koyuyor:

  • SameSite özelliği olmayan çerezler SameSite=Lax olarak kabul edilir.
  • SameSite=None öğesine sahip çerezler de Secure öğesini belirtmelidir. Bu, anlatabilmişimdir.

Bu değişikliklerin ikisi de doğru şekilde SameSite özelliğinin önceki sürümünü uyguladı. önceki SameSite sürümlerini desteklemeyen tarayıcılar. Bu toplantıların amacı geliştiricilerin sayısını azaltmak için güvenilir olmadığı için yapılandırarak (ör. çerezi yapılandırarak) açıkça belirtilmiş olmalıdır. Tanımayan ve SameSite=None bunu yoksaymalıdır.

Varsayılan olarak SameSite=Lax

Bir çerezi, SameSite özelliğini belirtmeden gönderirseniz tarayıcı çerezi SameSite=Lax değerine ayarlanmış gibi işler. Önerilerimiz: Kullanıcı deneyiminizi daha tutarlı hale getirmek için açıkça SameSite=Lax ayarlayarak yardımcı olur.

SameSite=None güvenli olmalıdır

SameSite=None kullanarak siteler arası çerezler oluşturduğunuzda bunları da ayarlamanız gerekir. Tarayıcının bunları kabul etmesi için Secure adresine:

Set-Cookie: widget_session=abc123; SameSite=None; Secure

Chrome 76'dan itibaren bu davranışı test etmek için about://flags/#cookies-without-same-site-must-be-secure ve Firefox 69'dan şurada network.cookie.sameSite.noneRequiresSecure ayarlayarak about:config.

Ayrıca, mevcut çerezleri en kısa sürede Secure olarak güncellemenizi öneririz. Sitenizde üçüncü taraf içerik sağlayan hizmetlerden yararlanıyorsanız hizmet sağlayıcınız çerezlerini günceller ve snippet'ler veya kullanımından emin olmanız gerekir.

Bu uygulamaların başarılı bir şekilde işlenmesi için çerezlerinizi güncelleme hakkında SameSite=None değişiklikleri ve tarayıcı davranışındaki farklılıklar için SameSite kurabiye tarifleri adlı makalenin devamını okuyun.

Lily Chen, Malte Ubl ve Mike'tan gelen katkılar ve geri bildirimler için teşekkür ederiz. West, Rob Dodson, Tom Steiner ve Vivek Sekhar.

Çerez hero resmi: Pille-Riin Priske açık Başlangıç