Chrome continue de réduire les informations partagées dans sa chaîne User-Agent pour protéger la confidentialité des utilisateurs.
À partir de Chrome 110 (février 2023), nous allons progressivement introduire une valeur fixe pour la version d'Android et le modèle d'appareil. La valeur par défaut sera toujours Android 10
sur un modèle K
.
Si vous vous appuyez sur l'user-agent pour détecter la version du système d'exploitation, le modèle d'appareil Android ou la version détaillée du navigateur d'un visiteur, vous devrez peut-être prendre des mesures. Pour en savoir plus, lisez la suite.
L'user-agent est une chaîne qui fournit des informations sur le navigateur et l'environnement de l'utilisateur, par exemple pour savoir qu'un visiteur de votre site utilise Chrome 110 sur Android. Votre navigateur l'envoie dans un en-tête HTTP et le met à disposition via JavaScript.
Le problème avec la chaîne user-agent complète est qu'elle partage des informations détaillées sur le navigateur par défaut à chaque requête, ce qui est un facteur majeur permettant le suivi intersites. Notre objectif est de réduire les possibilités de collecte passive de ces données tout en fournissant des API qui vous permettent d'y accéder activement lorsque vous en avez besoin.
Réduction des user-agents à ce jour
Nous avons déjà commencé à supprimer certaines des données de l'user-agent disponibles par défaut et à les remplacer par des valeurs fixes.
À partir de Chrome 101, nous avons remplacé le numéro de version mineure par des zéros. Par exemple, Chrome/101.3.2.1 est devenu Chrome/101.0.0.0.
À partir de Chrome 107, nous avons remplacé la version du système d'exploitation pour ordinateur et les informations sur le processeur par une valeur fixe pour la plate-forme.
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 |
Correction de la version Android et du modèle de l'appareil à partir de Chrome 110
À partir de Chrome 110, nous introduisons progressivement une valeur fixe pour la version d'Android et le modèle d'appareil.
Au lieu de voir Android 13
sur Pixel 7
, la valeur par défaut sera toujours Android 10
sur un modèle 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
Aucun changement apporté au format de l'user-agent
La réduction de l'user-agent modifie les valeurs renvoyées dans l'user-agent, mais le format reste le même. Si vous n'utilisez l'user-agent que pour lire le type de système d'exploitation ou la version majeure du navigateur, ces données continueront de s'actualiser comme avant et vous n'avez rien à faire.

Alternatives à l'user-agent
Si vous utilisez actuellement des données plus détaillées, il est toujours utile de vérifier si vous pouvez plutôt utiliser l'amélioration progressive ou la détection de fonctionnalités.
N'oubliez jamais que l'user-agent est comme n'importe quelle autre valeur fournie par l'utilisateur. Vous devez le valider et ne pas supposer qu'il est exact. La valeur de l'user-agent peut être facilement modifiée par l'utilisateur, les extensions ou d'autres clients, ou ne pas être envoyée du tout. Dans la plupart des cas, vous devriez pouvoir diffuser du contenu fonctionnel auprès des visiteurs sans données d'agent utilisateur.
Demander des données détaillées avec les hints client User-Agent
Il existe de nombreuses raisons légitimes d'accéder aux données détaillées de l'agent utilisateur, par exemple pour fournir du contenu spécifique à l'appareil, des fonctionnalités de lutte contre la fraude ou une journalisation précise. Si vous avez besoin de données plus détaillées, vous pouvez utiliser l'API User-Agent Client Hints (UA-CH) pour y accéder. Comme l'user-agent, UA-CH est disponible via des en-têtes HTTP ou JavaScript.
Vous avez peut-être déjà vu les en-têtes par défaut envoyés avec le préfixe Sec-CH-UA-
, qui indique le navigateur, sa version majeure, le système d'exploitation et si le navigateur est un appareil mobile.
⏫ En-têtes de requêtes d'indicateurs client User-Agent par défaut de 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"
Vous pouvez utiliser l'en-tête Accept-CH
dans votre réponse pour demander plus de données.
Dans ce cas, vous pouvez demander Sec-CH-UA-Platform-Version
et Sec-CH-UA-Model
pour récupérer cette version d'Android et ce type d'appareil dans les requêtes ultérieures.
⏬ En-tête de réponse de votre serveur spécifiant la version de la plate-forme et le modèle:
Accept-CH:
Sec-CH-UA-Platform-Version,
Sec-CH-UA-Model
⏫ En-têtes de requête renvoyés par Chrome, y compris la version d'Android et le nom du modèle:
Sec-CH-UA-Platform-Version: "13.0.0"
Sec-CH-UA-Model: "Pixel 7"
Vous pouvez faire la même chose en JavaScript en appelant getHighEntropyValues()
sur l'API userAgentData
, en transmettant un tableau des valeurs souhaitées: platformVersion
et model
.
Cette opération renvoie une promesse avec un objet contenant les valeurs spécifiques.
navigator.userAgentData
.getHighEntropyValues(
['platformVersion', 'model']
).then(ua => { console.log(ua)
});
{
"platformVersion": "13.0.0",
"model": "Pixel 7"
}
Requêtes multi-origines ou initiales
Si votre page contient des ressources inter-origines qui ont besoin de ces valeurs, vous pouvez autoriser l'accès via l'en-tête HTTP Permissions-Policy
ou à l'aide de la balise Meta Delegate-CH
dans votre code HTML.
Si votre site doit disposer de ces valeurs sensibles dès la première requête de niveau supérieur, vous pouvez utiliser l'en-tête HTTP Critical-CH
, qui indique au navigateur de réessayer sa requête initiale avec ces indices supplémentaires.
Cela peut être utile pour les anciens systèmes difficiles à mettre à jour, mais dans l'idéal, vous ne devez pas vous fier à ces valeurs sensibles pour diffuser votre code HTML initial.
En savoir plus
Pour voir la chaîne user-agent réduite en action, consultez les éléments suivants:
- Consultez la chaîne user-agent réduite de votre appareil sur goo.gle/reduced-ua-demo.
- Consultez tous les indicateurs client User-Agent de l'en-tête JavaScript et HTTP pour votre appareil sur goo.gle/ua-ch-demo.
- Envoyez la chaîne user-agent réduite dans votre navigateur en activant l'indicateur Chrome
#reduce-user-agent
.
Vous pouvez toujours vous inscrire à la phase d'évaluation de la réduction de l'user-agent pour recevoir l'user-agent réduit sur votre site. Nous allons toutefois mettre fin à cette phase d'évaluation début mars, car nous continuons d'augmenter l'envoi de l'user-agent réduit par défaut.
Pour en savoir plus, consultez la page de destination sur la réduction de l'user-agent. Vous pouvez également signaler des problèmes dans notre dépôt GitHub dédié à la réduction de l'user-agent.