close
  • Li chevron_right

    Fin des résultats directs sans Javascript sur Google

    pubsub.eckmul.net / linuxfr · Sunday, 17 January, 2021 - 16:06 · 6 minutes

<p>Bonjour, nal, je te présente un travail inédit que j'ai fait sur le comportement des recherches sur Google en mode « low-tech », qui a changé tout récemment.</p> <p>Ça fait pas mal d'années que j'utilise Google en mode très simple pour ne pas avoir à me taper le traçage qu'il implique quand on clique sur les liens. En effet, dans la version standard que tout le monde utilise de Google, tout un tas de Javascript vous fait voir et croire plein de trucs : l'URL affichée en haut est celle « historique » (<code>/search</code>) avec un paramètre simple du contenu de la recherche « q=… », tel que Google a toujours été depuis sa création, et les liens que vous voyez quand vous survolez les résultats sont les URL menant soit-disant directement au site. Bref, tout a l'air simple, comme à l'origine, où Google était vanté pour sa simplicité et son absence de publicité intrusive (ça fait vieux crouton de rappeler ça, je sais).</p> <p>Sauf que quand vous regardez ce qu'il se passe derrière… et bien ça n'est pas du tout joli : déjà, essayer de comprendre les mécanismes impliqués côté client dans ce moteur de recherche ressemble à du reverse-engineering de haut-vol (presque tout est obfusqué, ça utilise des bidouilles dans tous les sens, etc), et c'est une gageure. Je n'ai pas creusé à fond parce que ça ne m'intéresse pas et c'est trop chronophage, mais sachez que la resource récupérée lors de la recherche n'est pas exactement celle indiquée dans l'URL, mais une version avec des liens de « traçage », qui exécute un Javascript lorsque vous cliquez sur un résultat de recherche à des fin de statistiques, je suppose, mais tout ça en vous faisant croire que non (la page chargée a les liens de traçage, du JS remet le lien d'origine mais ajoute un callback qui intercepte le clic pour le remettre au moment où vous cliquez ; c'est vicieux…). Ça se trouve, ce code fait plein d'autres choses comme surveiller vos déplacements de souris et chronométrer tous vos gestes, je ne sais pas, ça ne m'intéresse pas.</p> <p>En effet, je navigue sans Javascript sur la plupart des sites, dont Google. Or, Google n'étant pas bégueule, et ayant historiquement une grande estime pour la rétro-compatibilité avec les logiciels du Web les plus antédiluviens (c'est à ça qu'on reconnaît des bon devs, il faut l'avouer), ils ont toujours servi — lors d'une consultation d'une page de recherche simple — des liens <em>directs</em> vers les résultats, sans traçage ! Bon, cependant, il y a un piège : cette page contient au sein de la balise <code>noscript</code> du corps, interprétée par les navigateurs n'activant pas Javascript, un balise (théoriquement réservée à l'en-tête, mais avec HTML on n'est pas à une bidouille près) meta indiquant un équivalent à l'en-tête HTTP <code>refresh</code> valant 0, indiquant au navigateur d'aller immédiatement vers une autre URL… qui sert un page avec des liens de traçage <em>sans Javascript</em>, remplaçant simplement les liens directs de la page précédente. Futé.</p> <p>Qu'à cela ne tienne, il y a quelques années j'ai poussé ma perversion low-tech jusqu'à empêcher l'interprétation de ce « refresh », à l'aide de l'option <code>accessibility.blockautorefresh</code> mise à <code>true</code> dans <code>about:config</code>. C'est pratique au passage car c'est une habitude de certains site (dont Le Monde à l'époque) pour forcer à recharger la page après quelques minutes, histoire de tracer votre présence je suppose, pour ceux qui n'ont <em>pas</em> Javascript ; comme quoi, on ne doit pas être si peu pour mériter tant de considérations de la part des publicitaires et autres manipulateurs… Et donc j'obtenais ainsi de la part de Google la première page servie par une requête simple sur l'URL historique « search?q=… » avec des liens direct, simple, même si mon navigateur me propose toujours en haut de la page de suivre la direction (mais ne m'y emmène plus automatiquement).</p> <p>Ça marchait donc depuis plusieurs année, quand aux alentours de la semaine dernière… plus de résultats ; page blanche, me proposant juste une redirection vers la page avec liens de traçage. Bon, en réalité, ça fait ça sur un Firefox antédiluvien, version 45, et un autre ESR, 52 je crois. Sur une version post-Quantum (60)… le refresh est suivi automatiquement, malgré l'option ! C'est un bug apparemment, mais je ne sais pas s'il est dû à la configuration particulière de la page Google (meta refresh dans une balise noscript, plutôt que dans l'en-tête). En plus, sur ce « nouveau » navigateur, je vois subrepticement l'ancienne page à laquelle j'étais habitué, puis elle disparaît pour afficher celle avec les liens de traçage (toujours sans Javascript, si vous suivez). En vérifiant dans les sources (hint : l'option de persistance des logs de l'onglet « réseau » des outils pour développeurs est très utile dans ce cas de figure où la page se recharge toute seule ; surtout avec un site qui se comporte différemment en fonction du User-Agent — Google bloque wget &amp; consorts), les résultats directs sont bien là, quelle que soit la version des navigateurs. Je suppose qu'un nouveau tour de Google en CSS <em>cache</em> les résultats derrière une page indiquant « Cliquez ici si, d'ici quelques secondes, vous n'avez pas été redirigé. ». Et du coup on ne peut plus l'utiliser simplement, sans autre bidouille.</p> <p>Car en effet, des « bidouilles » sous forme d'extensions qui permettent d'éviter le traçage de Google, il en existe depuis des lustres (j'ai des souvenir d'extensions autour de 2005, peut-être quand Google a introduit cette pratique ; car oui, au tout début en 1998, Google ne traçait personne…). Et c'est le jeu du chat et de la souris constant, car Google change régulièrement ses mécanismes, et les auteurs de bidouilles s'adaptent (ou pas, certains ont abandonné). L'approche low-tech sans JS ni redirection me permettait d'y arriver sans recourir à l'artillerie lourde, mais ce changement récent me fait remettre en cause ma position. Que vais-je faire aujourd'hui ? Est-ce que je me lance dans la bataille infinie contre Google ? Ou est-ce que j'abandonne, comme beaucoup de personnes et d'évènements nous y invitent ? Et tout ça est-ce en rapport avec le fait que j'avais commencé à évoquer cette technique il y a quelques semaines/mois ici ? Je dois mettre mon chapeau d'alu ?</p> <p>Je vous laisse en débattre, afin de m'inspirer.</p> <div><a href="https://linuxfr.org/users/benoar/journaux/fin-des-resultats-directs-sans-javascript-sur-google.epub">Télécharger ce contenu au format EPUB</a></div> <p> <strong>Commentaires :</strong> <a href="//linuxfr.org/nodes/122978/comments.atom">voir le flux Atom</a> <a href="https://linuxfr.org/users/benoar/journaux/fin-des-resultats-directs-sans-javascript-sur-google#comments">ouvrir dans le navigateur</a> </p>