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.
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 |
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
.
Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
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.

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.