Petunjuk pengujian Set Pihak Pertama

Iterasi terbaru Set Pihak Pertama siap untuk pengujian fitur developer mulai Chrome 108. Kami secara aktif mengerjakan Set Pihak Pertama dengan tujuan untuk beralih ke pengiriman. Oleh karena itu, kami akan mempertimbangkan masukan untuk tahap 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 kelas kasus penggunaan lintas situs ketika berbagai situs yang saling bergantung memiliki hubungan yang dapat dinyatakan ke 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 diberi nama requestStorageAccessForOrigin) untuk menyediakan metode aktif bagi situs guna meminta akses lintas situs untuk cookie mereka dalam Set Pihak Pertama. Petunjuk di bawah ini akan memungkinkan Anda menguji dan memvalidasi rangkaian apa yang mungkin ingin dibuat untuk situs Anda dan titik yang tepat untuk memanggil kedua API yang berbeda.

Ringkasan Set Pihak Pertama

Set Pihak Pertama (FPS) adalah mekanisme platform web bagi developer untuk menyatakan hubungan antar-situs, sehingga browser dapat menggunakan informasi ini untuk mengaktifkan akses cookie lintas situs terbatas untuk tujuan tertentu yang ditampilkan kepada pengguna. Chrome akan menggunakan hubungan yang dinyatakan ini untuk memutuskan kapan akan mengizinkan atau menolak akses situs ke cookie mereka saat dalam konteks pihak ketiga.

Pada tingkat yang tinggi, Set Pihak Pertama adalah kumpulan domain yang memiliki satu "kumpulan domain primer" dan mungkin beberapa "anggota kumpulan". Hanya penulis situs yang dapat mengirimkan domain mereka ke suatu kumpulan, dan mereka akan diwajibkan untuk menyatakan hubungan antara setiap "anggota kumpulan" ke "set primary". Anggota kumpulan dapat mencakup berbagai jenis domain dengan subset berdasarkan kasus penggunaan.

Untuk memfasilitasi penanganan browser terhadap setiap subset sesuai dengan implikasi privasi dari setiap subset, kami mengusulkan pemanfaatan 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 menyetujui 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 pemrosesan panggilan ke SAA oleh browser lain.

SAA saat ini mewajibkan dokumen mendapatkan aktivasi pengguna sebelum memanggil metode API.

Hal ini dapat membuat penerapan FPS menjadi sulit untuk 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.

Setel pengiriman

Daftar FPS kanonis akan menjadi daftar yang dapat dilihat oleh 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 yang diusulkan dan persyaratan untuk mengirimkan set, lihat panduan pengiriman. Anda juga dapat mencoba mengirimkan set untuk menguji berbagai pemeriksaan teknis yang akan memvalidasi kiriman. Perlu diperhatikan 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 set ke repo GitHub untuk diuji 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 tanda.

Langkah

Untuk mengaktifkan FPS secara lokal, Anda perlu menggunakan opsi --enable-features Chrome dengan daftar tanda yang dipisahkan koma yang dijelaskan di bagian ini, dan mendeklarasikan kumpulan situs terkait sebagai objek JSON untuk diteruskan ke --use-first-party-set.

Aktifkan 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 agar dapat di-resolve. Versi Chrome mendatang mungkin memberlakukan serangkaian persyaratan yang berbeda, karena spesifikasi SAA masih terus berkembang. Lihat di sini untuk mengetahui daftar perbaikan yang direncanakan untuk implementasi SAA oleh Chrome.

StorageAccessAPIForOriginExtension

Memungkinkan situs tingkat atas 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 mengatasi beberapa tantangan dalam mengadopsi SAA.

Mendeklarasikan kumpulan secara lokal

Set Pihak Pertama adalah kumpulan domain yang memiliki satu "kumpulan domain utama" dan mungkin beberapa "anggota kumpulan". Anggota kumpulan dapat mencakup berbagai jenis domain dengan subset berdasarkan kasus penggunaan.

Buat objek JSON yang berisi URL yang merupakan anggota kumpulan dan teruskan ke --use-first-party-set.

Pada contoh di bawah, primary mencantumkan domain primer, 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 yang ditetapkan, tetapi saat FPS dikirimkan dalam versi stabil, semua set harus dikirimkan ke repo GitHub FPS dan tunduk pada kriteria validasi.

Aktifkan UI FPS

PageInfoCookiesSubpage

Mengaktifkan tampilan FPS di bagian PageInfo yang dapat diakses dari kolom URL.

PrivacySandboxFirstPartySetsUI

Mengaktifkan 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).

Memverifikasi bahwa cookie pihak ketiga diblokir

  1. Di setelan Chrome, buka Privasi dan Keamanan → Cookie dan data situs lainnya, atau chrome://settings/cookies.
  2. Di bagian Setelan umum, pastikan "Blokir cookie pihak ketiga" diaktifkan.
  3. Periksa apakah 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, API tersebut dapat membuat aplikasi web rentan terhadap serangan lintas situs dan kebocoran informasi. Situs yang mengandalkan cookie dalam konteks lintas situs harus menyadari risiko CSRF dan serangan lainnya.

Peningkatan terencana

Untuk meningkatkan hal ini, rilis Chrome mendatang akan memerlukan kontrol keamanan tambahan, dengan tujuan memastikan keikutsertaan sematan eksplisit. Peningkatan yang diusulkan akan: hanya memberikan akses per frame, memerlukan CORS pada permintaan berkredensial, dan mempertahankan cakupan akses ke origin saja. Anda dapat membaca lebih lanjut di analisis keamanan terbaru.

Lihat daftar peningkatan yang direncanakan untuk implementasi SAA di Chrome.

Perlu diketahui bahwa Chrome hanya mengirimkan cookie yang ditandai sebagai SameSite=None dalam konteks tersemat lintas situs, yang relevan dengan Storage Access API. Namun, hingga semua browser menghentikan akses default ke cookie tersebut, tidak ada asumsi yang dapat dibuat mengenai di mana cookie tersebut dapat digunakan. Tidaklah aman 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 apa pun yang Anda hadapi. Selain itu, menguji proses pengiriman yang telah ditetapkan di GitHub adalah kesempatan untuk membagikan pengalaman Anda terkait proses dan langkah validasi. Untuk mengikuti dan berbagi masukan tentang proposal yang diperbarui: