Bersiaplah untuk pengurangan agen pengguna Chrome

Chrome terus mengurangi informasi yang dibagikan di string agen penggunanya untuk membantu melindungi privasi pengguna.

Mulai Chrome 110 (Februari 2023), kami secara bertahap memperkenalkan nilai tetap untuk versi Android dan model perangkat—nilai default-nya akan selalu Android 10 pada model K. Jika Anda mengandalkan agen pengguna untuk mendeteksi versi sistem operasi pengunjung, model perangkat Android, atau versi browser terperinci, maka Anda mungkin perlu melakukan tindakan—bacalah untuk detailnya.

User-agent adalah string yang memberikan informasi tentang browser pengguna dan lingkungannya—seperti mengetahui bahwa pengunjung di situs Anda menjalankan Chrome versi 110 di Android. Browser Anda mengirimkannya di header HTTP dan menyediakannya melalui JavaScript.

Masalah pada string agen pengguna lengkap adalah string tersebut membagikan informasi detail tentang browser secara default pada setiap permintaan yang merupakan faktor utama yang mengizinkan pelacakan lintas situs. Tujuan kami adalah mengurangi peluang pengumpulan data ini secara pasif sekaligus memberikan API agar Anda dapat mengakses data secara aktif saat membutuhkannya.

Pengurangan agen pengguna sejauh ini

Kami telah mulai menghapus beberapa data agen pengguna yang tersedia secara default, dan menggantinya dengan nilai tetap.

Mulai Chrome 101, kami mengganti nomor versi minor dengan nol, misalnya Chrome/101.3.2.1 menjadi Chrome/101.0.0.0.

Mulai Chrome 107, kami mengganti versi sistem operasi desktop dan informasi CPU dengan nilai tetap untuk platform tersebut.

MacMacintosh; Intel Mac OS X 10_15_7
WindowsWindows NT 10.0; Win64; x64
ChromeOSX11; CrOS x86_64 14541.0.0
LinuxX11; Linux x86_64

Versi Android dan model perangkat yang diperbaiki mulai Chrome 110

Mulai Chrome 110, kami secara bertahap memperkenalkan nilai tetap untuk versi Android dan model perangkat. Alih-alih melihat sesuatu seperti Android 13 di Pixel 7, nilai defaultnya akan selalu Android 10 pada model K.

Sebelum: agen pengguna menyertakan versi Android dan model perangkat

Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/95.0.0.0 Mobile Safari/537.36

Setelah: pengurangan agen pengguna dengan versi Android dan model perangkat tetap

Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/95.0.0.0 Mobile Safari/537.36

Tidak ada perubahan pada format agen pengguna

Pengurangan agen pengguna mengubah nilai yang ditampilkan dalam agen pengguna, tetapi formatnya tetap sama. Jika Anda hanya menggunakan agen pengguna untuk membaca jenis sistem operasi atau versi browser utama, data tersebut akan terus diupdate seperti sebelumnya dan Anda tidak perlu melakukan tindakan apa pun.

Bagian platform, nama browser, versi utama browser, dan indikator seluler dari string agen pengguna terus diperbarui seperti sebelumnya.
Jenis sistem operasi, model perangkat, dan versi minor browser adalah nilai statis.
Semua bagian lain dari string agen pengguna tetap sama.

Alternatif untuk agen pengguna

Jika saat ini Anda menggunakan data yang lebih mendetail, ada baiknya untuk memeriksa apakah Anda dapat menggunakan progressive enhancement atau deteksi fitur.

Selalu ingat bahwa agen pengguna sama seperti nilai lainnya yang disediakan pengguna—Anda harus memvalidasinya dan jangan berasumsi bahwa nilai tersebut akurat. Nilai agen pengguna dapat dengan mudah diubah oleh pengguna, ekstensi, klien lainnya, atau mungkin tidak dikirim sama sekali. Umumnya, Anda harus dapat mengirimkan konten yang berfungsi kepada pengunjung tanpa data agen pengguna.

Meminta data mendetail dengan Petunjuk Klien Agen Pengguna

Ada banyak alasan valid untuk mengakses data agen pengguna yang mendetail, misalnya menyediakan konten spesifik per perangkat, fungsi antipenipuan, atau logging mendetail. Jika memerlukan data yang lebih mendetail, Anda dapat menggunakan User-Agent Client Hints (UA-CH) API untuk mengaksesnya. Seperti agen pengguna, UA-CH tersedia melalui header HTTP atau JavaScript.

Anda mungkin sudah melihat header default dikirim dengan awalan Sec-CH-UA- yang memberi tahu Anda browser, versi utamanya, sistem operasi, dan apakah browser adalah perangkat seluler.

Header permintaan Petunjuk Klien Agen Pengguna Default dari Chrome:

Sec-CH-UA: "Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"
Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"

Anda dapat menggunakan header Accept-CH dalam respons untuk meminta lebih banyak data. Dalam hal ini, Anda dapat meminta Sec-CH-UA-Platform-Version dan Sec-CH-UA-Model untuk mendapatkan kembali versi Android dan jenis perangkat tersebut di permintaan berikutnya.

Header respons dari server Anda yang menentukan versi platform dan model:

Accept-CH:
  Sec-CH-UA-Platform-Version,
  Sec-CH-UA-Model

Header permintaan kembali dari Chrome termasuk versi Android dan nama model:

Sec-CH-UA-Platform-Version: "13.0.0"
Sec-CH-UA-Model: "Pixel 7"

Anda dapat melakukan hal yang sama di JavaScript dengan memanggil getHighEntropyValues() di userAgentData API, yang meneruskan array nilai yang Anda inginkan: platformVersion dan model. Tindakan ini akan menampilkan promise dengan objek yang berisi nilai tertentu.

navigator.userAgentData
 .getHighEntropyValues(
   ['platformVersion', 'model']
 ).then(ua => { console.log(ua)
 });

{
  "platformVersion": "13.0.0",
  "model": "Pixel 7"
}

Permintaan lintas origin atau awal

Jika memiliki resource lintas origin di halaman yang memerlukan nilai ini, Anda dapat mengizinkan akses melalui header HTTP Permissions-Policy atau menggunakan tag meta Delegate-CH di HTML.

Jika situs Anda perlu memiliki nilai sensitif ini pada permintaan tingkat atas pertama, Anda dapat menggunakan header HTTP Critical-CH yang akan memberi tahu browser untuk mencoba kembali permintaan awalnya dengan menambahkan petunjuk tambahan tersebut. Hal ini mungkin berguna untuk sistem lama yang sulit diupdate, tetapi idealnya Anda tidak boleh mengandalkan nilai sensitif ini untuk menayangkan HTML awal Anda.

Pelajari lebih lanjut

Untuk melihat cara kerja string agen pengguna yang dikurangi, lihat hal berikut:

  • Lihat string agen pengguna yang dikurangi untuk perangkat Anda di goo.gle/reduced-ua-demo
  • Lihat semua Petunjuk Klien Agen Pengguna header JavaScript dan header untuk perangkat Anda di goo.gle/ua-ch-demo
  • Kirim string agen pengguna yang dikurangi di browser Anda dengan mengaktifkan tanda Chrome #reduce-user-agent.

Anda juga tetap dapat mendaftar ke uji coba origin Pengurangan Agen Pengguna untuk menerima pengurangan agen pengguna di situs Anda, meskipun kami akan mengakhiri uji coba ini pada awal Maret seiring kami terus meningkatkan pengiriman agen pengguna yang dikurangi secara default.

Kami memiliki lebih banyak referensi di halaman landing pengurangan agen pengguna dan Anda juga dapat melaporkan masalah di repo GitHub pengurangan agen pengguna khusus kami.