Widget obrolan, peta yang disematkan, sistem pembayaran, dan layanan dukungan sering berjalan dari domain pihak ketiga. Agar pengalaman pengguna tetap konsisten, layanan tersebut kadang perlu menyimpan status di browser. Masalahnya, cookie pihak ketiga yang dapat dibaca di banyak situs juga berpotensi dipakai untuk menghubungkan aktivitas pengguna lintas situs.
Cookies Having Independent Partitioned State (CHIPS) menawarkan pendekatan yang lebih terarah: cookie pihak ketiga dapat tetap digunakan untuk kebutuhan tertentu, tetapi penyimpanannya dipisahkan berdasarkan situs yang sedang dikunjungi. Dengan begitu, satu widget dapat mempertahankan statusnya pada sebuah situs tanpa otomatis memakai identitas cookie yang sama ketika disematkan di situs lain.
Apa itu CHIPS?
CHIPS adalah mekanisme browser yang memungkinkan pengembang memilih cookie untuk disimpan dalam partisi terpisah. Secara sederhana, browser tidak hanya mempertimbangkan domain yang membuat cookie, tetapi juga situs tingkat atas tempat cookie itu dibuat. Situs tingkat atas adalah halaman utama yang dilihat pengguna, bukan iframe atau komponen yang tertanam di dalamnya.
Misalnya, layanan chat dari chat.vendor.example disematkan pada toko.example dan berita.example. Tanpa partisi, cookie layanan chat yang sama mungkin dapat digunakan pada kedua situs jika kebijakan browser mengizinkannya. Dengan CHIPS, cookie untuk konteks toko.example berada di partisi berbeda dari cookie untuk konteks berita.example. Layanan tetap dapat menyimpan status chat di masing-masing situs, tetapi tidak memperoleh satu cookie bersama hanya karena domain penyedianya sama.
Bagaimana atribut Partitioned bekerja?
CHIPS menambahkan atribut Partitioned pada header HTTP Set-Cookie. Cookie partisi harus menggunakan koneksi aman, sehingga atribut Secure wajib disertakan. Untuk cookie yang perlu dikirim dalam konteks lintas situs, SameSite=None juga biasanya diperlukan.
Set-Cookie: __Host-widget=abc123; Path=/; Secure; SameSite=None; PartitionedContoh tersebut memakai awalan __Host-, yang membantu membatasi cookie ke host yang mengaturnya. Untuk menggunakan awalan ini, cookie harus memiliki Secure, menggunakan Path=/, dan tidak boleh menetapkan atribut Domain. Awalan ini direkomendasikan ketika cookie tidak perlu dibagikan ke subdomain lain.
Browser yang mendukung CHIPS mengaitkan cookie dengan dua konteks: host yang mengatur cookie dan kunci partisi berdasarkan situs tingkat atas. Karena kunci partisinya berbeda, cookie yang dibuat ketika widget berada di satu situs tidak otomatis tersedia ketika widget yang sama muncul pada situs lain. Detail penerapan dan dukungan browser tetap perlu diuji pada target pengguna.
Kapan CHIPS berguna?
- Widget dukungan pelanggan: menyimpan status percakapan atau preferensi tampilan pada satu situs.
- Peta dan konten tersemat: mempertahankan pengaturan lokal tanpa menggunakan cookie yang sama di seluruh situs.
- Alur pembayaran pihak ketiga: menyimpan informasi sesi yang memang dibutuhkan dalam konteks toko tertentu, sesuai rancangan penyedia dan persyaratan keamanan.
- Layanan infrastruktur: menyimpan konfigurasi tertentu untuk komponen yang digunakan sebagai subresource, selama kebutuhan tersebut cocok dengan model partisi.
CHIPS bukan solusi universal untuk semua sesi pihak ketiga. Jika suatu layanan benar-benar membutuhkan status yang sama di beberapa situs terkait, arsitektur autentikasi, izin pengguna, atau mekanisme browser lain mungkin lebih sesuai. Jangan mengandalkan cookie lintas situs sebagai satu-satunya cara memulihkan akun atau mengotorisasi transaksi sensitif.
Checklist penerapan untuk pengembang
- Tentukan kebutuhan cookie. Catat data yang disimpan, masa berlaku, alasan widget membutuhkannya, dan apakah status harus terpisah per situs.
- Gunakan atribut yang tepat. Untuk cookie partisi, sertakan
SecuredanPartitioned. TambahkanSameSite=Nonejika cookie perlu dikirim dalam konteks lintas situs. Jika memakai awalan__Host-, patuhi syaratPath=/dan jangan memakaiDomain. - Batasi isi cookie. Simpan pengenal sesi yang diperlukan saja; jangan menaruh data pribadi atau rahasia aplikasi secara langsung di dalamnya. Lindungi endpoint server dan validasi sesi pada setiap permintaan.
- Uji lebih dari satu konteks. Sematkan widget pada dua situs uji yang berbeda, lalu periksa melalui panel penyimpanan browser apakah masing-masing memiliki kunci partisi yang terpisah.
- Siapkan perilaku cadangan. Dukungan browser dan kebijakan privasi dapat berbeda. Pastikan widget tetap memberi pesan yang jelas atau menyediakan alur alternatif ketika cookie tidak tersedia.
Batasan yang tidak boleh diabaikan
CHIPS mengurangi peluang sebuah cookie partisi dipakai untuk menghubungkan aktivitas di situs yang tidak berkaitan, tetapi tidak membuat pengguna anonim secara menyeluruh. Penyedia masih dapat menerima alamat IP, informasi permintaan, atau pengenal lain yang dikirim aplikasi. Pelacakan juga dapat terjadi melalui mekanisme selain cookie, sehingga minimisasi data, pembatasan log, dan transparansi tetap diperlukan.
Selain itu, atribut cookie yang benar tidak menggantikan perlindungan terhadap cross-site scripting, pencurian token, atau kelemahan otorisasi server. Gunakan HTTPS, tetapkan masa berlaku yang masuk akal, rotasi sesi bila diperlukan, dan jangan mempercayai nilai cookie hanya karena browser menyimpannya dalam partisi.
Kesimpulan
CHIPS membantu menjaga fungsi cookie pihak ketiga yang memiliki alasan penggunaan sah, sambil memisahkan penyimpanan berdasarkan situs tingkat atas. Untuk pengembang widget, kuncinya adalah menentukan kebutuhan sesi secara jelas, memakai atribut cookie yang benar, menguji perilaku lintas browser, dan tidak menganggap partisi cookie sebagai pengganti desain privasi yang menyeluruh.
Referensi teknis: panduan CHIPS di MDN dan dokumentasi CHIPS dari Chrome Privacy Sandbox.
PENGALAMAN BARU Coba tampilan baru Penasaran dengan pengalaman membaca Nazuaf versi modern? Coba tampilan baru yang dirancang agar nyaman dibaca dari ponsel dan pc. Buka versi modern dan lanjutkan membaca artikel ini. Jelajahi tampilan baru Nazuaf versi modern · Ketuk kartu untuk mencoba