User-Agent Spoofing
Définition
Le User-Agent Spoofing consiste à modifier le header HTTP User-Agent pour faire passer un script ou un bot pour un navigateur légitime. Bien que simple à implémenter, cette technique seule est insuffisante car les systèmes anti-bot modernes vérifient la cohérence entre le User-Agent déclaré et d'autres signaux (TLS fingerprint, JavaScript APIs).
Deep Dive
User-Agent Spoofing : nécessaire mais insuffisant
Structure d'un User-Agent
```
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
```
Composants :
Pourquoi le spoofing seul ne suffit plus
Les anti-bots vérifient la cohérence :
| Signal | UA Chrome | Bot Python |
|--------|-----------|------------|
| TLS Fingerprint | JA3 Chrome | JA3 urllib |
| navigator.webdriver | false | true |
| navigator.plugins | [plugins...] | [] |
| canvas fingerprint | Unique | Identique |
Bonnes pratiques
1. Utiliser des UA récents (vérifier chromestatus.com)
2. Matcher l'OS du UA avec d'autres signaux
3. Maintenir une base de UA à jour
4. Varier les UA de manière réaliste
Code Playground
Gestion de profils navigateur cohérents incluant Client Hints pour éviter la détection
# Rotation User-Agent intelligente avec cohérence
import random
from dataclasses import dataclass
from typing import List
@dataclass
class BrowserProfile:
user_agent: str
accept_language: str
platform: str
sec_ch_ua: str
sec_ch_ua_platform: str
# Profils cohérents (UA + headers Client Hints)
BROWSER_PROFILES: List[BrowserProfile] = [
BrowserProfile(
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
accept_language="fr-FR,fr;q=0.9,en;q=0.8",
platform="Win32",
sec_ch_ua='"Google Chrome";v="120", "Chromium";v="120"',
sec_ch_ua_platform='"Windows"'
),
BrowserProfile(
user_agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
accept_language="fr-FR,fr;q=0.9",
platform="MacIntel",
sec_ch_ua='"Google Chrome";v="120", "Chromium";v="120"',
sec_ch_ua_platform='"macOS"'
),
BrowserProfile(
user_agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
accept_language="en-US,en;q=0.9",
platform="Linux x86_64",
sec_ch_ua='"Google Chrome";v="120", "Chromium";v="120"',
sec_ch_ua_platform='"Linux"'
),
]
def get_coherent_headers() -> dict:
"""Retourne des headers cohérents pour un profil aléatoire"""
profile = random.choice(BROWSER_PROFILES)
return {
"User-Agent": profile.user_agent,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": profile.accept_language,
"Accept-Encoding": "gzip, deflate, br",
"Sec-Ch-Ua": profile.sec_ch_ua,
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": profile.sec_ch_ua_platform,
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
}Avis d'Expert 2026
Le User-Agent Spoofing est devenu une technique de base en 2026, mais son efficacité dépend entièrement de la cohérence globale du profil de requête. Les Client Hints (Sec-CH-UA-*) ajoutent une couche de complexité car ils doivent être cohérents avec le UA. La tendance est à l'utilisation de bibliothèques complètes comme undetected-chromedriver plutôt qu'au spoofing manuel.
Besoin d'aide sur User-Agent Spoofing ?
Nos experts peuvent vous accompagner sur vos projets de crawling et d'optimisation GEO.
Contactez l'expert Crawlers.fr