Changer l’agent utilisateur avec curl pour obtenir le code source de l’URL sous un autre système d’exploitation et navigateur

En utilisant curl, nous pouvons récupérer le code source HTML & CSS de n’importe quelle URL spécifiée et même les informations d’en-tête http, mais certains sites servent un contenu complètement différent ou du HTML à des versions de systèmes d’exploitation et de navigateurs différents, cela se fait en détectant leur agent utilisateur. De ce fait, nous pouvons usurper l’agent utilisateur d’une autre version de navigateur et d’un autre système d’exploitation, ce qui permet aux développeurs web d’avoir rapidement accès à ces variantes du code source d’un site. Pour les besoins de la présente étude, nous y parviendrons à partir de la ligne de commande en utilisant curl.

La syntaxe de base pour l’usurpation de l’agent utilisateur avec la commande curl est la suivante :

curl -A « UserAgentString » http://url.com

Bien entendu, vous remplacerez UserAgentString par une chaîne d’agent utilisateur légitime qui correspond au navigateur que vous souhaitez imiter.

Examinons quelques exemples avec différentes chaînes d’agents utilisateurs.

L’une des situations les plus courantes où les sources HTML et CSS sont différentes est celle des sites web dont les versions mobiles sont dépouillées, avec lesquels vous pourriez récupérer le code source spécifique à l’iPhone :

curl -A « Mozilla/5.0 (iPhone ; U ; CPU iPhone OS 4_3_3 comme Mac OS X ; en-us) AppleWebKit/533.17.9 (KHTML, comme Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5 » http://www.apple.com

Certains sites le font également avec d’autres navigateurs. Il s’agit de Chrome 12 dans Mac OS X 10.6.8:

curl -A « Mozilla/5.0 (Macintosh ; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, comme Gecko) Chrome/12.0.742.112 Safari/534.30 » http://microsoft.com

En voici une autre qui parodie l’App Store de Mac et Mac OS X 10.6.7 en tant qu’agent utilisateur et qui est utile pour interroger l’App Store à partir d’un script (pour en savoir plus, voir TUAW ) :

curl -silent -A « iMacAppStore/1.0.1 (Macintosh ; U ; Intel Mac OS X 10.6.7 ; fr) AppleWebKit/533.20.25 » http://ax.search.itunes.apple.com/

Encore un autre détournement de Windows XP avec Firefox 3 :

curl -A « Mozilla/5.0 (Windows ; U ; Windows NT 5.1 ; de ; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 » http://yahoo.com

Vous pouvez trouver des chaînes d’agents utilisateurs sur tout le web, assurez-vous simplement de les inclure entre guillemets si vous voulez récupérer une source de sites en tant qu’agent utilisateur. Si vous voulez en savoir plus sur les agents utilisateurs, Wikipedia a une bonne entrée sur le sujet.

Note : Ceci est fait intentionnellement par la ligne de commande et s’adresse à ceux qui aiment travailler depuis le Terminal, mais il existe des moyens faciles de le faire par le biais d’applications graphiques standard et de navigateurs web comme Safari, Chrome et Firefox. Safari est probablement le plus simple, car vous pouvez définir différents agents utilisateurs directement à partir du menu Développeur :

Cette capture d’écran est tirée d’un article sur le fonctionnement des appels au Vidéo Chat de Facebook dans OS X Lion, qui est réalisé en changeant l’agent utilisateur du navigateur pour une version que Facebook a jugé compatible.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *