Comment est construite une chaîne user-agent
Chaque navigateur envoie un en-tête User-Agent à chaque requête. Prenons l’exemple d’un Chrome récent sous Windows :
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/157.0.0.0 Safari/537.36
Mozilla/5.0— un jeton historique transmis par tous les navigateurs par souci de compatibilité.(Windows NT 10.0; Win64; x64)— la plateforme. Windows 11 indique également NT 10.0.AppleWebKit/537.36 (KHTML, like Gecko)— la filiation du moteur de rendu ; Blink (Chrome) affiche toujours WebKit 537.36.Chrome/157.0.0.0— le navigateur et sa version majeure ; les numéros mineurs sont désormais toujours à zéro.Safari/537.36— un autre jeton de compatibilité.
Edge ajoute Edg/ (EdgA/ sur Android), Opera OPR/ et Samsung Internet SamsungBrowser/ à cette même base Chromium. Sur iPhone, Chrome, Firefox et Edge s’identifient sous les désignations CriOS, FxiOS et EdgiOS au sein d’une chaîne Safari — c’est pourquoi un analyseur syntaxique doit vérifier ces éléments avant de tester Chrome ou Safari, et pourquoi un iPad en mode bureau apparaît exactement comme un Mac.
User agents figés et réduits
Afin de limiter le pistage par empreinte (fingerprinting), les navigateurs ne transmettent plus l’ensemble de leurs caractéristiques précises. Le user agent réduit de Chrome renvoie invariablement Windows NT 10.0, Mac OS X 10_15_7 ou Android 10; K et remplace la version mineure par des zéros. Safari indique macOS 10.15.7 depuis plusieurs années, et sur iPhone ou iPad, il transmet désormais une version figée d’iOS 18 au lieu de la version réelle (les chaînes générées ici utilisent OS 18_7). Firefox rapporte Mac OS X 10.15. Les chaînes produites ici suivent ces standards : un user agent mentionnant Chrome/157.0.7012.88 ou un modèle d'appareil spécifique dans une chaîne Chrome Android n’est transmis par aucun navigateur récent et s’avère très facile à identifier comme artificiel.
La version exacte du système d’exploitation, le modèle d’appareil et la version détaillée du navigateur restent accessibles sous Chromium via les User-Agent Client Hints. En HTTPS, les navigateurs Chromium transmettent systématiquement les indications de faible entropie Sec-CH-UA, Sec-CH-UA-Mobile et Sec-CH-UA-Platform ; sélectionnez En-têtes HTTP + Client Hints pour les obtenir avec chaque user agent de manière cohérente, accompagnées d’un en-tête Accept-Language dans la langue de votre choix. Les valeurs détaillées telles que Sec-CH-UA-Platform-Version constituent des indications à forte entropie : un serveur doit explicitement les demander avec un en-tête Accept-CH, ou un script via navigator.userAgentData.getHighEntropyValues().
Utiliser les user agents générés dans votre code
Choisissez cURL, Python (requests) ou Playwright (Node.js) en sortie pour obtenir un code directement exécutable intégrant vos user agents. Quelques bonnes pratiques garantissent le réalisme de vos tests :
- Conservez des en-têtes cohérents. Un user agent Chrome dépourvu d’en-têtes
Sec-CH-UA, ou présentant l’ordre d’en-têtes caractéristique de Firefox, est immédiatement repéré. Les outils anti-bot comparent également l’empreinte TLS et HTTP/2 avec le navigateur déclaré ; un client Python affichant un user agent Chrome reste donc identifiable. - Ne changez pas d’agent au sein d’une même session. Un internaute réel conserve le même navigateur tout au long de sa navigation ; modifier le user agent à chaque requête est un indicateur flagrant d’activité automatisée.
- Respectez la répartition du trafic réel. Le générateur privilégie déjà Chrome sur Android et Windows ainsi que Safari sur iPhone, à l'image du trafic mondial.
Modifier un user agent ne vous affranchit pas des règles d’accès aux sites tiers : veillez à respecter leurs conditions générales d’utilisation et leur robots.txt, tout en maintenant une fréquence de requêtes raisonnable.
Modifier le user agent de votre navigateur
- Chrome et Edge : ouvrez les Outils de développement (F12), allez dans Plus d'outils → Conditions de réseau, décochez Utiliser les paramètres par défaut du navigateur et collez votre user agent. La modification reste active tant que les outils de développement sont ouverts.
- Firefox : accédez à
about:config, créez une chaîne nomméegeneral.useragent.overrideet affectez-lui le user agent souhaité ; supprimez-la pour rétablir la configuration initiale. - Safari : activez le menu Développement dans Réglages → Avancé, puis rendez-vous dans Développement → Agent d'utilisateur.
Vérifier l’authenticité des robots d’indexation
N'importe quel client HTTP peut déclarer un user agent Googlebot. Pour s’assurer qu’une requête provient réellement de Google ou de Bing, effectuez une résolution DNS inverse (reverse DNS) sur l’adresse IP : le nom d'hôte doit se terminer par googlebot.com, google.com ou, pour certains services spécifiques de Google déclenchés par l'utilisateur, googleusercontent.com ; Bingbot résout quant à lui vers search.msn.com. Procédez ensuite à une résolution directe pour vérifier qu’elle renvoie bien vers l'IP initiale. Google et Microsoft publient également la liste complète de leurs plages d’adresses IP sous forme de fichiers JSON. Ne filtrez jamais vos accès uniquement sur la valeur du user agent.
Questions fréquentes
Quel est mon user agent ?
Il apparaît dans l’encadré ci-dessus, accompagné du navigateur, de la version, du système d’exploitation et du type d’appareil détectés. Il est lu localement dans votre navigateur via navigator.userAgent ; aucune donnée n’est envoyée à nos serveurs.
Ces user agents sont-ils réels et à jour ?
Ils sont élaborés à partir des modèles exacts envoyés par les navigateurs récents, avec des versions issues des canaux de distribution officiels de Google, Microsoft et Mozilla (Chrome 157, Edge 156, Firefox 159) et Safari 27.0. Sélectionnez 3 ou 6 dernières versions majeures pour inclure des versions légèrement antérieures, conformément au trafic réel.
Pourquoi tous les user agents Windows mentionnent-ils Windows NT 10.0 ?
Les navigateurs ont figé le jeton de plateforme : Windows 11 s'identifie sous la désignation NT 10.0 afin de ne pas perturber les anciens scripts de détection et pour réduire le pistage par empreinte. Pour distinguer Windows 10 de Windows 11, interrogez le Client Hint à forte entropie Sec-CH-UA-Platform-Version : une version supérieure ou égale à 13 correspond à Windows 11.
Puis-je utiliser ces user agents pour le web scraping ?
Vous pouvez les employer dans vos bancs de test et dans des scripts qui respectent les conditions d'utilisation des sites ainsi que leur robots.txt. Un user agent réaliste ne suffit pas à faire passer un script pour un vrai navigateur, et ne saurait justifier le contournement de restrictions d'accès.
Est-il illégal de modifier son user agent ?
En règle générale, non : adapter le user agent envoyé par son navigateur ou un script est une pratique courante en développement et en test. Selon la législation locale et les conditions d'utilisation du service ciblé, cela peut toutefois poser problème si cette démarche sert à contourner des contrôles d’accès ou à usurper une identité.