Nilai sandbox allow-same-site-none-cookies baru dari Chrome 135

Natalia Markoborodova
Natalia Markoborodova

Mulai Chrome 135, Anda dapat menggunakan nilai sandbox baru: allow-same-site-none-cookies. Jika kebijakan ini ditentukan dan cookie pihak ketiga tidak tersedia, browser hanya akan mengirim cookie SameSite=None dalam permintaan HTTP yang berasal dari iframe sandbox pihak pertama.

Apa yang dimaksud dengan iframe yang ditempatkan dalam sandbox?

Iframe sandbox adalah iframe dengan pembatasan khusus. Mereka diperlakukan sebagai memiliki asal null, buram. Secara default, fitur yang berpotensi berbahaya seperti skrip, formulir, dan pop-up tidak tersedia dalam iframe sandbox.

Gunakan atribut sandbox untuk menentukan fitur mana yang harus tersedia di iframe sandbox. Contoh:

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

Sandbox selalu merupakan ide yang baik, karena memungkinkan Anda memilih izin yang diperlukan untuk memuat konten sematan secara terperinci, sekaligus membatasi cakupan potensi eksploitasi.

Mengapa kami memerlukan kebijakan baru ini?

Sebelum diperkenalkannya allow-same-site-none-cookies, Anda dapat mengonfigurasi dua skenario cookie dalam iframe sandbox:

  • Tanpa token allow-same-origin di atribut sandbox, origin iframe akan diserialisasi sebagai null, sehingga semua permintaan dari halaman yang di-sandbox bersifat lintas situs. Dalam hal ini, hanya cookie dengan SameSite=None yang akan disertakan dalam permintaan.
  • Dengan token allow-same-origin di atribut sandbox, permintaan akan diperlakukan seolah-olah berasal dari origin sebenarnya iframe, sehingga cookie dengan nilai SameSite apa pun dapat dikirim.

Dengan cookie pihak ketiga yang diblokir, iframe yang di-sandbox tanpa allow-same-origin tidak dapat mengirim cookie apa pun kecuali jika Anda mengaktifkan allow-same-site-none-cookies.

Iframe dengan allow-same-origin akan tetap dapat menyertakan cookie dalam permintaan situs yang sama, meskipun cookie pihak ketiga diblokir. Namun, seluruh penyimpanan cookie asal akan terekspos ke aktivitas web yang berpotensi berbahaya.

Dengan allow-same-site-none-cookies, iframe dapat mengirim cookie SameSite=None dalam permintaan HTTP, sementara cookie SameSite=Strict dan SameSite=Lax yang berpotensi sensitif tidak akan disertakan.

Contoh praktis

Pertimbangkan situs, practice-coding.example, yang memungkinkan pengguna membuat dan menjalankan project coding kustom serta menyematkan kode pengguna lain. Untuk menggunakan layanan, pengguna harus login, sehingga cookie sesi SameSite=Strict ditetapkan.

Pengguna lain membuat project, practice-coding.example/cookie-theft, yang dapat disematkan oleh pengguna lain sebagai iframe dalam project mereka tanpa disadari. Jika cookie SameSite=Strict dan SameSite=Lax diekspos ke iframe practice-coding.example/cookie-theft, pengguna berbahaya dapat mencuri cookie sesi pengguna lain.

Dalam skenario ini, pemilik situs mungkin ingin membatasi akses ke cookie yang berpotensi sensitif. Namun, mereka mungkin masih ingin mengizinkan cookie SameSite=None dalam iframe yang di-sandbox. Misalnya, iframe yang di-sandbox mungkin memerlukan cookie practice-coding.example/coding-interview untuk memungkinkan kandidat membuka kembali kode mereka.SameSite=None allow-same-site-none-cookies mencegah tereksposnya seluruh jar cookie sekaligus mengizinkan cookie SameSite=None yang diperlukan secara selektif.

Bagaimana cara mengizinkan hanya SameSite=None dalam frame sandbox pihak pertama?

Untuk mengaktifkan cookie SameSite=None dalam permintaan dari halaman sandbox pihak pertama, tentukan token allow-same-site-none-cookies dalam tag iframe. Contoh:

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

Anda juga dapat menyetel kebijakan allow-same-site-none-cookies dengan Header HTTP Content-Security-Policy:

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

Cobalah sendiri dengan demo kami.

Berinteraksi dan memberikan masukan

Buat masalah untuk membagikan masukan atau melaporkan masalah, atau bergabung dalam diskusi di GitHub.