Iterasi terbaru Set Pihak Pertama siap untuk pengujian flag fitur developer dari Chrome 108. Kami sedang aktif mengerjakan Set Pihak Pertama dengan tujuan untuk melakukan pengiriman, sehingga kami akan mempertimbangkan masukan untuk fase pengujian developer ini hingga rilis Chrome 111 pada awal Maret (7 Maret 2023).
Masukan ekosistem telah menyoroti kasus penggunaan lintas situs yang akan terpengaruh saat cookie pihak ketiga tidak lagi didukung di Chrome. Proposal Set Pihak Pertama memeriksa dan menangani class kasus penggunaan lintas situs yang melibatkan situs yang saling bergantung dan memiliki hubungan yang dapat dinyatakan kepada browser sehingga browser dapat mengambil tindakan yang sesuai atas nama pengguna dan/atau menyajikan informasi tersebut secara efektif kepada pengguna.
Proposal yang diperbarui menggunakan dua API (Storage Access API dan API baru yang sementara bernama requestStorageAccessForOrigin
) untuk memberi situs metode aktif dalam meminta akses lintas situs untuk cookie mereka dalam Set Pihak Pertama. Petunjuk di bawah ini akan memungkinkan Anda menguji dan memvalidasi kumpulan yang mungkin ingin Anda buat untuk situs dan titik yang tepat untuk memanggil dua API yang berbeda.
Ringkasan Set Pihak Pertama
Set Pihak Pertama (FPS) adalah mekanisme platform web bagi developer untuk mendeklarasikan hubungan antar-situs, sehingga browser dapat menggunakan informasi ini untuk mengaktifkan akses cookie lintas situs yang terbatas untuk tujuan tertentu yang ditampilkan kepada pengguna. Chrome akan menggunakan hubungan yang dideklarasikan ini untuk memutuskan kapan harus mengizinkan atau menolak akses situs ke cookie-nya saat dalam konteks pihak ketiga.

Pada tingkat tinggi, Set Pihak Pertama adalah kumpulan domain, yang memiliki satu "set utama" dan berpotensi beberapa "set anggota". Hanya penulis situs yang dapat mengirimkan domain mereka ke set, dan mereka akan diminta untuk mendeklarasikan hubungan antara setiap "anggota set" dengan "set utama"-nya. Anggota set dapat mencakup berbagai jenis domain dengan subkumpulan berdasarkan kasus penggunaan.
Untuk memfasilitasi penanganan browser terhadap setiap subset sesuai dengan implikasi privasi setiap subset, kami mengusulkan untuk memanfaatkan Storage Access API (SAA) dan requestStorageAccessForOrigin untuk mengaktifkan akses cookie dalam FPS.
Dengan SAA, situs dapat secara aktif meminta akses cookie lintas situs. Chrome akan otomatis mengabulkan permintaan jika situs yang meminta dan situs tingkat teratas berada dalam FPS yang sama. Lihat dokumentasi Storage Access API (SAA) untuk mengetahui informasi tentang cara panggilan ke SAA diproses oleh browser lain.
SAA saat ini mewajibkan dokumen untuk mendapatkan aktivasi pengguna sebelum memanggil metode API.
Hal ini dapat membuat penerapan FPS menjadi sulit bagi situs tingkat atas yang menggunakan gambar lintas situs atau tag skrip yang memerlukan cookie. Untuk mengatasi beberapa tantangan ini, kami telah mengusulkan API baru, requestStorageAccessForOrigin
, untuk memudahkan developer mengadopsi perubahan ini. API ini juga tersedia untuk pengujian.
Menetapkan pengiriman
Daftar FPS kanonis akan menjadi daftar yang dapat dilihat secara publik dalam format file JSON yang disimpan di repositori GitHub FPS baru, yang akan berfungsi sebagai sumber tepercaya untuk semua set. Chrome akan menggunakan file ini untuk diterapkan pada perilakunya.
Untuk mempelajari lebih lanjut proses dan persyaratan yang diusulkan untuk mengirimkan set, lihat panduan pengiriman. Anda juga dapat mencoba mengirimkan set untuk menguji berbagai pemeriksaan teknis yang akan memvalidasi pengiriman. Perhatikan bahwa semua kiriman akan dihapus sebelum FPS tersedia di Chrome versi stabil.
Karena proses pengiriman set masih dalam pengembangan aktif, untuk pengujian lokal, Anda hanya dapat membuat set di command line dan meneruskannya langsung ke browser. Untuk pengujian lokal, Anda tidak perlu mengirimkan kumpulan ke repo GitHub untuk menguji dengan flag fitur.
Cara menguji secara lokal
Prasyarat
Untuk menguji FPS secara lokal, gunakan Chrome 108 atau yang lebih baru yang diluncurkan dari command line.
Untuk melihat pratinjau fitur Chrome mendatang sebelum dirilis, download Chrome versi Beta atau Canary.
Contoh
google-chrome \
--enable-features="FirstPartySets,StorageAccessAPI,StorageAccessAPIForOriginExtension,PageInfoCookiesSubpage,PrivacySandboxFirstPartySetsUI" \
--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}" \
Pelajari lebih lanjut cara menjalankan Chromium dengan flag.
Langkah
Untuk mengaktifkan FPS secara lokal, Anda harus menggunakan opsi --enable-features
Chrome dengan daftar flag yang dipisahkan koma yang dijelaskan di bagian ini dan mendeklarasikan sekumpulan situs terkait sebagai objek JSON yang akan diteruskan ke --use-first-party-set
.
Mengaktifkan FPS
FirstPartySets
mengaktifkan FPS di Chrome.
FirstPartySets
Mengaktifkan Storage Access API
StorageAccessAPI
Mengaktifkan Storage Access API (SAA) di Chrome yang memungkinkan iframe tersemat menggunakan requestStorageAccess()
untuk meminta akses ke cookie dalam konteks lintas situs, meskipun cookie pihak ketiga diblokir oleh browser.
Perhatikan bahwa saat dipanggil, requestStorageAccess()
memerlukan gestur pengguna untuk me-resolve. Versi Chrome mendatang mungkin menerapkan kumpulan persyaratan yang berbeda, karena spesifikasi SAA masih berkembang. Lihat di sini untuk mengetahui daftar peningkatan yang direncanakan pada penerapan SAA oleh Chrome.
StorageAccessAPIForOriginExtension
Memungkinkan situs tingkat teratas menggunakan requestStorageAccessForOrigin()
untuk meminta akses penyimpanan atas nama origin tertentu. Hal ini berguna untuk situs tingkat atas yang menggunakan gambar lintas situs atau tag skrip yang memerlukan cookie dan menangani beberapa tantangan dalam mengadopsi SAA.
Mendeklarasikan set secara lokal
Set Pihak Pertama adalah kumpulan domain, yang memiliki satu "set utama" dan berpotensi beberapa "set anggota". Anggota set dapat mencakup berbagai jenis domain dengan subkumpulan berdasarkan kasus penggunaan.
Buat objek JSON yang berisi URL yang merupakan anggota set dan teruskan ke --use-first-party-set
.
Pada contoh di bawah, primary
mencantumkan domain utama, dan associatedSites
mencantumkan domain yang memenuhi persyaratan subset terkait.
{
"primary": "https://primary.com",
"associatedSites": ["https://associate1.com", "https://associate2.com", "https://associate3.com"]
}
Contoh:
--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}"
Untuk pengujian lokal, Anda hanya dapat membuat set di command line dan meneruskannya langsung ke browser. Untuk tujuan pengujian lokal, tidak akan ada validasi set, tetapi saat FPS dikirim dalam versi stabil, semua set harus dikirim ke repo GitHub FPS dan tunduk pada kriteria validasi.
Mengaktifkan UI FPS
PageInfoCookiesSubpage
Memungkinkan tampilan FPS di bagian PageInfo yang dapat diakses dari kolom URL.

PrivacySandboxFirstPartySetsUI
Mengaktifkan opsi UI FPS "Izinkan situs terkait melihat aktivitas Anda di grup" di setelan Chrome, di bagian Privasi dan Keamanan → Cookie dan data situs lainnya (chrome://settings/cookies).

Memastikan bahwa cookie pihak ketiga diblokir
- Di setelan Chrome, buka Privasi dan Keamanan → Cookie dan data situs lainnya atau chrome://settings/cookies.
- Di bagian Setelan umum, pastikan "Blokir cookie pihak ketiga" diaktifkan.
- Pastikan sub-opsi "Izinkan situs terkait melihat aktivitas Anda di grup" juga diaktifkan.
Pertimbangan keamanan
Karena Storage Access API memungkinkan situs mendapatkan kembali akses ke cookie pihak ketiga dalam kasus tertentu, aplikasi web dapat rentan terhadap serangan lintas situs dan kebocoran informasi. Situs yang mengandalkan cookie dalam konteks lintas situs harus mengetahui risiko CSRF dan serangan lainnya.
Peningkatan yang direncanakan
Untuk meningkatkannya, rilis Chrome mendatang akan memerlukan kontrol keamanan tambahan, dengan tujuan memastikan keikutsertaan penyematan yang eksplisit. Peningkatan yang diusulkan akan: hanya memberikan akses berdasarkan per frame, mewajibkan CORS pada permintaan kredensial, dan mempertahankan cakupan akses hanya ke origin. Anda dapat membaca selengkapnya di analisis keamanan terbaru.
Lihat daftar peningkatan yang direncanakan untuk penerapan SAA di Chrome.
Perhatikan bahwa Chrome hanya mengirim cookie yang ditandai SameSite=None dalam konteks tersemat lintas situs, yang merupakan tempat Storage Access API relevan. Namun, sampai semua browser tidak lagi menggunakan akses default ke cookie tersebut, tidak ada asumsi yang dapat dibuat tentang tempat cookie dapat digunakan. Tidak aman untuk berasumsi bahwa akses hanya akan diizinkan dalam FPS, dan situs harus terus menggunakan praktik terbaik keamanan standar.
Berinteraksi dan memberikan masukan
Pengujian lokal adalah kesempatan untuk mencoba mekanisme Storage Access API guna mengaktifkan FPS dan membagikan masukan atau masalah yang Anda alami. Selain itu, menguji proses pengiriman yang ditetapkan di GitHub adalah kesempatan untuk membagikan pengalaman Anda dengan proses dan langkah validasi. Untuk berinteraksi dan memberikan masukan tentang proposal yang diperbarui:
- Laporkan masalah dan ikuti diskusi di GitHub.
- Ajukan pertanyaan dan bergabunglah dalam diskusi di repo Dukungan Developer Privacy Sandbox.
- Jelajahi berbagai cara untuk memberikan masukan tentang proposal Privacy Sandbox.