Chrome 135'ten itibaren yeni korumalı alan allow-same-site-none-cookies değeri

Natalia Markoborodova
Natalia Markoborodova

Chrome 135'ten itibaren yeni sandbox değerini kullanabilirsiniz: allow-same-site-none-cookies. Bu politika belirtildiğinde ve üçüncü taraf çerezleri kullanılamadığında tarayıcı, yalnızca birinci taraf korumalı alan iframe'lerinden gelen HTTP isteklerinde SameSite=None çerezleri gönderir.

Korumalı alan iFrame'i nedir?

Korumalı alan iframe'leri, özel kısıtlamalara sahip iframe'lerdir. Bu kaynaklar, null, opak bir kaynağa sahip olarak kabul edilir. Komut dosyaları, formlar ve pop-up'lar gibi zararlı olabilecek özellikler, varsayılan olarak korumalı alana alınmış iframe'lerde kullanılamaz.

Korumalı alan içeren iframe'lerin hangi özelliklere sahip olması gerektiğini belirtmek için sandbox özelliğini kullanın. Örneğin:

 <iframe sandbox="allow-scripts" src="example-sandboxed-frame.html"/>

Potansiyel kötüye kullanımların kapsamını sınırlarken, yerleştirilmiş içeriğin başarılı bir şekilde yüklenmesi için gereken izinleri ayrıntılı olarak seçmenize olanak tanıdığı için korumalı alan her zaman iyi bir fikirdir.

Bu yeni politikaya neden ihtiyacımız var?

allow-same-site-none-cookies kullanıma sunulmadan önce, korumalı alan içeren bir iframe'de iki çerez senaryosu yapılandırabiliyordunuz:

  • sandbox özelliğinde allow-same-origin jetonu olmadan iframe'in kaynağı null olarak dizilenir. Bu da korumalı alan sayfasından gelen tüm isteklerin siteler arası olmasını sağlar. Bu durumda, istekler yalnızca SameSite=None içeren çerezleri içerir.
  • sandbox özelliğindeki allow-same-origin jetonu sayesinde istekler, iframe'ın gerçek kaynağından geliyormuş gibi değerlendirilir. Bu sayede, herhangi bir SameSite değeri içeren çerezlerin gönderilmesine izin verilir.

Üçüncü taraf çerezleri engellendiğinde, allow-same-origin içermeyen korumalı alan iframe'i allow-same-site-none-cookies'ü etkinleştirmediğiniz sürece çerez gönderemez.

allow-same-origin içeren bir iFrame, üçüncü taraf çerezleri engellendiğinde bile aynı site isteklerine çerez dahil etmeye devam edebilir. Ancak kaynağın tüm çerez kabı, kötü amaçlı olabilecek web etkinliklerine maruz kalır.

allow-same-site-none-cookies ile bir iframe, HTTP isteklerinde SameSite=None çerezleri gönderebilir. Bu durumda, hassas olabilecek SameSite=Strict ve SameSite=Lax çerezleri dahil edilmez.

Pratik örnek

Kullanıcıların özel kodlama projeleri oluşturup çalıştırmasına ve diğer kullanıcıların kodunu yerleştirmesine olanak tanıyan practice-coding.example adlı bir siteyi düşünün. Hizmeti kullanmak için kullanıcıların oturum açması gerekir. Bu işlem sonucunda bir SameSite=Strict oturum çerezi ayarlanır.

Başka bir kullanıcı, diğer kullanıcıların bilmeden projelerinde iframe olarak yerleştirebileceği practice-coding.example/cookie-theft adlı bir proje oluşturur. SameSite=Strict ve SameSite=Lax çerezleri practice-coding.example/cookie-theft iFrame'ine maruz kalırsa kötü amaçlı kullanıcı diğer kullanıcıların oturum çerezlerini çalabilir.

Bu senaryoda site sahibi, hassas olabilecek çerezlere erişimi kısıtlamak isteyebilir. Ancak, korumalı alan içi iFrame'lerde SameSite=None çerezlerine izin vermek isteyebilirler. Örneğin, practice-coding.example/coding-interview korumalı alan iframe'i, adayların kodlarını tekrar ziyaret etmesine izin vermek için SameSite=None çerezleri gerektirebilir. allow-same-site-none-cookies, gerekli SameSite=None çerezlerine seçerek izin verirken çerez kabının tamamının gösterilmesini engeller.

Birinci taraf korumalı alan çerçevelerinde yalnızca SameSite=None öğesine nasıl izin verebilirim?

Birinci taraf korumalı alan sayfalarından gelen isteklerde SameSite=None çerezlerini etkinleştirmek için iframe etiketinde allow-same-site-none-cookies jetonunu belirtin. Örneğin:

 <iframe sandbox="allow-same-site-none-cookies" src="example-sandboxed-page.html"/>

Content-Security-Policy HTTP üstbilgisini kullanarak da allow-same-site-none-cookies politikası ayarlayabilirsiniz:

Content-Security-Policy: sandbox allow-same-site-none-cookies;

Demomuzu kullanarak bu özelliği kendiniz de deneyebilirsiniz.

Etkileşim kurma ve geri bildirim paylaşma

Geri bildirim paylaşmak veya sorunları bildirmek için sorun bildirin ya da GitHub'daki tartışmaya katılın.