Chrome terus mengurangi informasi yang dibagikan dalam 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 akan selalu berupa Android 10
pada model K
.
Jika Anda mengandalkan agen pengguna untuk mendeteksi versi sistem operasi pengunjung, model perangkat Android, atau versi browser mendetail, Anda mungkin perlu mengambil tindakan. Baca terus untuk mengetahui detailnya.
Agen pengguna 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 dalam header HTTP dan menyediakannya melalui JavaScript.
Masalah dengan string agen pengguna lengkap adalah string tersebut membagikan informasi mendetail tentang browser secara default pada setiap permintaan yang merupakan faktor utama dalam mengizinkan pelacakan lintas situs. Tujuan kami adalah mengurangi peluang untuk mengumpulkan data ini secara pasif sekaligus menyediakan API agar Anda dapat mengakses data secara aktif saat Anda 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.
Mac | ➡ | Macintosh; Intel Mac OS X 10_15_7 |
Windows | ➡ | Windows NT 10.0; Win64; x64 |
ChromeOS | ➡ | X11; CrOS x86_64 14541.0.0 |
Linux | ➡ | X11; Linux x86_64 |
Memperbaiki versi Android dan model perangkat mulai dari Chrome 110
Mulai Chrome 110, kami secara bertahap memperkenalkan nilai tetap untuk versi Android dan model perangkat.
Daripada melihat sesuatu seperti Android 13
di Pixel 7
, nilai default akan selalu Android 10
di model K
.
Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
Tidak ada perubahan pada format agen pengguna
Pengurangan agen pengguna mengubah nilai yang ditampilkan di agen pengguna, tetapi format tetap sama. Jika Anda hanya menggunakan agen pengguna untuk membaca jenis sistem operasi atau versi utama browser, data tersebut akan terus diperbarui seperti sebelumnya dan Anda tidak perlu melakukan tindakan apa pun.

Alternatif untuk agen pengguna
Jika saat ini Anda menggunakan data yang lebih mendetail, sebaiknya periksa apakah Anda dapat menggunakan progressive enhancement atau deteksi fitur.
Selalu ingat bahwa agen pengguna sama seperti nilai lain yang diberikan pengguna—Anda harus memvalidasinya dan tidak menganggapnya akurat. Nilai agen pengguna dapat dengan mudah diubah oleh pengguna, ekstensi, klien lain—atau mungkin tidak dikirim sama sekali. Pada umumnya, Anda dapat menayangkan 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, seperti menyediakan konten khusus perangkat, fungsi anti-penipuan, atau logging terperinci. Jika memerlukan data yang lebih mendetail, Anda dapat menggunakan API Client Hints Agen Pengguna (UA-CH) untuk mengaksesnya. Seperti agen pengguna, UA-CH tersedia melalui header HTTP atau JavaScript.
Anda mungkin telah melihat header default yang dikirim dengan awalan Sec-CH-UA-
yang memberi tahu Anda browser, versi utamanya, sistem operasi, dan apakah browser tersebut 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 data lainnya.
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 dalam permintaan berikutnya.
⏬ Header respons dari server Anda yang menentukan versi dan model platform:
Accept-CH:
Sec-CH-UA-Platform-Version,
Sec-CH-UA-Model
⏫ Meminta header 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 teratas 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.
Pelajari lebih lanjut
Untuk melihat cara kerja string agen pengguna yang dipersingkat, lihat hal berikut:
- Lihat string agen pengguna yang dipersingkat untuk perangkat Anda di goo.gle/reduced-ua-demo
- Lihat semua Petunjuk Klien Agen Pengguna header JavaScript dan HTTP untuk perangkat Anda di goo.gle/ua-ch-demo
- Kirim string agen pengguna yang dikurangi di browser Anda dengan mengaktifkan flag Chrome
#reduce-user-agent
.
Anda juga masih dapat mendaftar untuk uji coba origin Pengurangan Agen Pengguna guna menerima agen pengguna yang dikurangi di situs Anda, meskipun kami akan mengakhiri uji coba ini pada awal Maret karena kami terus meningkatkan pengiriman agen pengguna yang dikurangi secara default.
Kami memiliki referensi lainnya di halaman landing pengurangan agen pengguna dan Anda juga dapat melaporkan masalah di repo GitHub pengurangan agen pengguna khusus kami.