Petunjuk pengujian Set Pihak Pertama

Iterasi terbaru Set Pihak Pertama siap untuk pengujian tombol fitur developer dari Chrome 108. Kami aktif berupaya untuk Set Pihak Pertama guna meningkatkan pengiriman. Oleh karena itu, kami akan mempertimbangkan masukan untuk fase pengujian developer ini hingga Chrome 111 dirilis 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 yang memungkinkan situs yang saling bergantung memiliki hubungan yang dapat diekspresikan ke browser, sehingga browser dapat mengambil tindakan yang sesuai atas nama pengguna dan/atau secara efektif menyajikan informasi tersebut kepada pengguna.

Proposal yang diperbarui menggunakan dua API (Storage Access API dan API baru yang sementara waktu bernama requestStorageAccessForOrigin) untuk memberi situs metode aktif permintaan akses lintas situs untuk cookie mereka dalam Set Pihak Pertama. Petunjuk di bawah akan memungkinkan Anda untuk menguji dan memvalidasi set yang mungkin ingin dibuat untuk situs Anda serta titik yang tepat untuk memanggil kedua 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 mereka ketika dalam konteks pihak ketiga.

Pada tingkat tinggi, Set Pihak Pertama adalah kumpulan domain, yang memiliki satu "kumpulan utama" dan kemungkinan beberapa "anggota kumpulan". Hanya penulis situs yang dapat mengirimkan domain mereka ke suatu kumpulan, dan mereka akan diminta untuk menyatakan hubungan antara setiap "anggota kumpulan" dengan "kumpulan utama". Anggota kumpulan dapat menyertakan berbagai jenis domain dengan subset 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 memberikan permintaan jika situs yang meminta dan situs tingkat atas berada di 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 tersebut mendapatkan aktivasi pengguna sebelum memanggil metode API.

Hal ini dapat membuat adopsi FPS sulit untuk situs tingkat teratas yang menggunakan gambar lintas situs atau tag skrip yang memerlukan cookie. Untuk mengatasi beberapa tantangan ini, kami telah mengusulkan API baru, requestStorageAccessForOrigin, untuk mempermudah developer mengadopsi perubahan ini. API ini juga tersedia untuk pengujian.

Tetapkan pengiriman

Daftar FPS kanonis akan menjadi daftar yang dapat dilihat secara publik dalam format file JSON yang bertempat di repositori GitHub FTP baru, yang akan berfungsi sebagai sumber tepercaya untuk semua set. Chrome akan menggunakan file ini untuk menerapkan 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. Perhatikan bahwa semua pengiriman 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 agar dapat diuji dengan tombol fitur.

Cara melakukan pengujian secara lokal

Prasyarat

Untuk menguji FPS secara lokal, gunakan Chrome 108 atau versi 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 harus 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.

Perlu diketahui bahwa saat dipanggil, requestStorageAccess() memerlukan gestur pengguna untuk me-resolve. Versi Chrome mendatang mungkin menerapkan serangkaian persyaratan yang berbeda, karena spesifikasi SAA masih terus berkembang. Lihat di sini guna mendapatkan daftar peningkatan terencana untuk implementasi SAA Chrome.

StorageAccessAPIForOriginExtension

Memungkinkan situs tingkat teratas menggunakan requestStorageAccessForOrigin() untuk meminta akses penyimpanan atas nama origin tertentu. Hal ini berguna untuk situs tingkat teratas yang menggunakan gambar lintas situs atau tag skrip yang memerlukan cookie dan mengatasi beberapa tantangan dalam mengadopsi SAA.

Mendeklarasikan set secara lokal

Set Pihak Pertama adalah kumpulan domain, yang memiliki satu "kumpulan utama" dan kemungkinan beberapa "anggota kumpulan". Anggota kumpulan dapat menyertakan 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 pada command line dan meneruskannya langsung ke browser. Untuk tujuan pengujian lokal, tidak akan ada validasi set, tetapi saat FPS dikirimkan dalam versi stabil, semua set harus dikirimkan ke repo FPS GitHub dan tunduk kepada kriteria validasi.

Aktifkan UI FPS

PageInfoCookiesSubpage

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

PrivacySandboxFirstPartySetsUI

Mengaktifkan opsi "Izinkan situs terkait melihat aktivitas Anda di grup" FPS UI 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. 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 mungkin rentan terhadap serangan lintas situs dan kebocoran informasi. Situs yang mengandalkan cookie dalam konteks lintas situs harus mengetahui risiko CSRF dan serangan lainnya.

Peningkatan terencana

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

Lihat daftar peningkatan terencana untuk implementasi SAA Chrome.

Perlu diketahui bahwa Chrome hanya mengirimkan cookie yang ditandai SameSite=None dalam konteks sematan lintas situs, yang merupakan tempat Storage Access API relevan. Namun, hingga semua browser tidak lagi menggunakan akses default ke cookie tersebut, tidak ada asumsi yang dapat dibuat tentang di mana cookie dapat digunakan. Tidak aman berasumsi bahwa akses hanya akan diizinkan dalam FPS, dan situs harus terus menggunakan praktik terbaik keamanan standar.

Berinteraksi dan memberikan masukan

Pengujian lokal merupakan kesempatan untuk mencoba mekanisme Storage Access API untuk mengaktifkan FPS dan membagikan masukan atau masalah apa pun yang Anda hadapi. Selain itu, menguji proses pengiriman yang ditetapkan di GitHub merupakan kesempatan untuk berbagi pengalaman Anda terkait proses dan langkah validasi. Untuk berinteraksi dan berbagi masukan tentang proposal yang diperbarui: