Chrome tarayıcısında SameSite çerez değişikliklerini işleme

SameSite nedir?

SameSite , web uygulamalarında Siteler Arası İstek Sahteciliği (CSRF) saldırılarını önlemek için HTTP tanımlama bilgilerinde ayarlanabilen bir özelliktir:

  • SameSite Lax olarak ayarlandığında, tanımlama bilgisi aynı siteden gelen isteklerde ve diğer sitelerden gelen GET isteklerinde gönderilir. Etki alanları arası GET isteklerinde gönderilmez.
  • Bir Strict değeri, tanımlama bilgisinin yalnızca aynı site içindeki isteklerde gönderilmesini sağlar.

Varsayılan olarak, SameSite değeri tarayıcılarda AYARLANMADI ve bu nedenle isteklerde gönderilen çerezlerle ilgili hiçbir kısıtlama yoktur. Bir uygulamanın, gereksinimlerine göre Lax veya Strict ayarlayarak CSRF korumasına katılmaları gerekir.

SameSite değişiklikleri ve kimlik doğrulaması üzerindeki etkisi

SameSite'deki standartlarda yapılan son güncelleştirmeler, hiçbir değerin Lax olarak ayarlanmadığı durumlarda varsayılan davranışı SameSite yaparak uygulamaların korunmasını önerir. Bu önlem, tanımlama bilgilerinin diğer sitelerden yapılan GET istekleri haricinde HTTP isteklerinde kısıtlanacağı anlamına gelir. Ayrıca, çerezlerin gönderilmesine yönelik kısıtlamaları kaldırmak için None tanıtılır. Bu güncelleştirmeler yakında Chrome tarayıcısının gelecek bir sürümünde yayınlanacaktır.

Web uygulamaları "form_post" yanıt modunu kullanarak Microsoft kimlik platformu kimlik doğrulaması yaparken, oturum açma sunucusu belirteçleri veya kimlik doğrulama kodunu göndermek için HTTP POST kullanarak uygulamaya yanıt verir. Bu istek etki alanları arası bir istek olduğundan (örneğin login.microsoftonline.com'dan etki alanınıza olan https://contoso.com/auth), uygulamanız tarafından ayarlanan tanımlama bilgileri artık Chrome'daki yeni kurallara tabi olur. Siteler arası senaryolarda kullanılması gereken tanımlama bilgileri, oturum açma isteğinde gönderilen durum ve nonce değerlerini barındıran tanımlama bilgileridir. Oturumu tutmak için Microsoft Entra ID tarafından bırakılan başka tanımlama bilgileri de vardır.

Web uygulamalarınızı güncelleştirmezseniz, bu yeni davranış kimlik doğrulaması hatalarına neden olur.

Risk azaltma ve örnekler

Kimlik doğrulama hatalarının üstesinden gelmek için, Microsoft kimlik platformu ile kimlik doğrulaması yapılan web uygulamaları, Chrome tarayıcısında çalışırken etki alanları arası senaryolarda kullanılan tanımlama bilgileri için SameSite özelliğini None olarak ayarlayabilir. Diğer tarayıcılar (tam liste için buraya bakın) önceki davranışı izler ve ayarlandığında tanımlama bilgilerini içermez. Bu nedenle, birden çok tarayıcıda kimlik doğrulamasını desteklemek için web uygulamalarının değeri SameSite yalnızca Chrome'da olarak ayarlaması None ve değeri diğer tarayıcılarda boş bırakması gerekir.

Bu yaklaşım aşağıdaki örnek kodda gösterilmiştir.

ASP.NET ve ASP.NET Core örneklerimizdeki SameSite değişikliklerine çözüm getiren çekme istekleri, aşağıdaki tabloda sunulmaktadır.

Örnek Çekme isteği
ASP.NET Core web uygulaması aşamalı öğretici Aynı site çerez düzeltmesi #261
ASP.NET MVC web uygulaması örneği Aynı site çerez düzeltmesi #35
active-directory-dotnet-admin-restricted-scopes-v2 Aynı site çerez düzeltmesi #28

ASP.NET ve ASP.NET Core'da SameSite tanımlama bilgilerinin nasıl işleneceğinin ayrıntıları için ayrıca bkz:

Sonraki adımlar

SameSite ve Web uygulaması senaryosu hakkında daha fazla bilgi edinin: