4 points par GN⁺ 2025-08-05 | 2 commentaires | Partager sur WhatsApp
  • Perplexity a utilisé des web crawlers dissimulant leur identité pour contourner les directives de non-crawling
  • L'ignorance du fichier robots.txt ainsi que les changements continus d'IP et de User Agent ont été constatés
  • Lors d'expériences sur de nouveaux domaines, il a été confirmé que Perplexity accédait au contenu du site malgré la configuration de blocage
  • Cloudflare a modifié ses règles de gestion et retiré Perplexity de la liste des bots officiellement certifiés afin de prévenir ces comportements
  • Contrairement aux opérateurs de bots bienveillants comme OpenAI, les actions de dissimulation de Perplexity ont été pointées du doigt

Aperçu des comportements de crawlers furtifs de Perplexity

  • Perplexity, un moteur de réponses basé sur l'IA, a commencé à crawler des sites web avec un User Agent officiellement déclaré
  • Mais lorsqu'il est confronté à un blocage réseau, il change le User Agent pour dissimuler son identité et tente d'accéder via divers ASN (autonomous system numbers)
  • De nombreuses tentatives d'accès ont été observées dans ce processus, soit en ignorant soit en ne demandant même pas le fichier robots.txt

Principes de confiance entre site web et crawler et comportements problématiques

  • L'Internet s'est développé ces dernières décennies sur la base de la confiance, et il est de principe qu'un crawler soit transparent, poursuive des objectifs clairs et suive des règles de conduite explicites
  • Un crawler doit respecter les directives et priorités du propriétaire du site web, et le comportement observé chez Perplexity cette fois-ci enfreint ce principe
  • Par conséquent, Cloudflare a retiré Perplexity de la liste des bots officiellement certifiés et a appliqué des règles de gestion supplémentaires pour détecter et bloquer les crawlers furtifs

Cas d'expérimentation et de détection

  • Cloudflare a créé un nouveau domaine pour tester le comportement de crawling de Perplexity
    • Le robots.txt a été configuré pour interdire tout accès automatisé, et des règles WAF supplémentaires ont été ajoutées
    • Malgré le blocage des User Agent et IP officiels de Perplexity, il a été confirmé que le contenu du site était collecté en dissimulant l'identité
  • Perplexity a tenté d'accéder au contenu avec un User Agent officiel et un User Agent furtif, le second imitant un navigateur réel (Chrome)
Type Exemple d'User Agent Volume de requêtes quotidien
Officiel Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user) 20 à 25 millions
Furtif Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 3 à 6 millions
  • Perplexity utilise de nombreuses IP et ASN qui ne font pas partie des plages IP officielles, en remplaçant continuellement les IP pour tenter de contourner les règles de blocage
  • Ces activités ont été identifiées sur des dizaines de milliers de domaines et des millions de requêtes, et Cloudflare a utilisé l'apprentissage automatique ainsi que des signaux réseau pour détecter ce crawler

Cas de contournement par crawler furtif et limites

  • Quand le crawler furtif est bloqué, Perplexity tente de fournir des réponses à l'aide de sources externes, comme d'autres sites web
  • Toutefois, une baisse nette du détail du contenu fourni a été constatée dans ce cas

Normes des opérateurs de bots de bonne foi et bonnes pratiques d'OpenAI

  • Les bots correctement gérés devraient respecter les principes de transparence, d'identification claire, de divulgation de l'objectif d'activité, d'utilisation d'un bot distinct par activité, et de conformité aux règles des webmasters (robots.txt, etc.)
  • OpenAI fournit publiquement des IPs et User Agent officiels, affiche clairement l'objectif de son activité de crawl, et respecte strictement robots.txt
  • Dans les tests réels, le crawler ChatGPT arrête les tentatives de crawl supplémentaires dès qu'il détecte une directive disallow ou un blocage réseau
  • Des mécanismes d'authentification standardisés comme Web Bot Auth sont également adoptés activement

Mesures de protection et contre-mesures

  • Tous les crawls issus des User Agent non déclarés de Perplexity sont détectés et bloqués par le système de gestion des bots de Cloudflare
  • Les clients avec les règles de blocage bot ou de challenge de Cloudflare déjà activées sont déjà protégés
  • Des règles d'administration pour bloquer les crawlers furtifs sont désormais disponibles pour tous les clients (y compris les clients gratuits)
  • Après l'annonce de Content Independence Day, plus de 2,5 millions de sites web ont appliqué une politique interdisant le crawling par l'IA
  • Face à l'évolution continue des tentatives d'évitement de la part des opérateurs de bots, Cloudflare fait évoluer en permanence son dispositif et ses technologies de réponse

Efforts réglementaires et perspectives

  • Cloudflare participe activement aux discussions de normalisation de l'extension robots.txt avec des experts techniques et des experts politiques mondiaux, dont l'IETF
  • Il s'oriente vers l'établissement de règles pour des crawlers dignes de confiance et vers une mise en avant de la transparence et de la conformité dans un environnement IA et crawling en mutation rapide

2 commentaires

 
kaydash 2025-08-07

Allez, Perplexity !

 
GN⁺ 2025-08-05
Avis de Hacker News
  • Je pense qu’il est vraiment difficile de résoudre ce problème.

    1. Si je demande du contenu à un site en tant qu’humain, tout le monde convient que j’ai le droit de le consulter.
    2. Le fait d’installer un logiciel sur mon ordinateur, par exemple un bloqueur de pubs, qui modifie ce qui apparaît avant le contenu, c’est mon choix, et je pense qu’il est normal que le site ne puisse pas le savoir. La plupart des utilisateurs sont d’accord, mais certains sites importunent l’utilisateur en lui demandant de modifier les logiciels installés.
    3. Mais si, à cause d’un contenu recouvert de pubs, de JavaScript et de pop-ups, je dois utiliser un LLM (large language model) pour lire un résumé, je ne comprends pas pourquoi il faudrait traiter juridiquement différemment l’accès à un site via Firefox et celui via un LLM à ma place.
    • Certains magasins n’accueillent pas de services comme Instacart ou Postmates. Que tu fasses toi-même tes courses ou que tu balances ton téléphone pour scanner tous les produits pour comparer les prix, cela ne change rien. En revanche, je ne pense pas acceptable qu’un service tiers envoie ses propres employés vérifier le stock, ou qu’il retire les produits après commande en ligne au nom de quelqu’un. Les raisons sont diverses : ne pas perdre le contrôle de la perception de la qualité du produit (qu’il soit devenu froid ou trop chaud, qu’il y ait une hausse de prix, qu’il y ait une mauvaise substitution), vouloir entretenir une relation client via des employés qui s’occupent directement du service, ou simplement être opposé à la livraison tierce en général. Rejeter qu’une entreprise sans rapport fasse du business dans mon magasin physique me semble un choix raisonnable. Je pense que cette logique s’applique aussi aux services numériques.

    • C’est une question de volume. La prochaine étape que tu évoques est probablement le jour où les gens feront tourner des bots de recherche personnels et enverront des requêtes sur d’innombrables sites pour répondre à des questions bien plus vite qu’un humain. Il faut réfléchir jusqu’où cela peut être acceptable. Est-ce que le crawl personnel est acceptable ? Ou lorsque le bot devient plus intelligent, prédit ce que l’utilisateur va demander et crawle en permanence avec des informations toujours fraîches ? Ou bien cela devient-il problématique quand l’échelle augmente et qu’un crawling massif au service de plusieurs utilisateurs commence ?

    • Je pense qu’il faut distinguer entre les termes « crawler » et « fetcher ». Ayant récemment participé au développement d’outils de détection d’agents IA (https://stytch.com/blog/introducing-is-agent/), je pense qu’il existe une vraie valeur à ce qu’un exploitant de site puisse identifier un agent IA et recommander des méthodes d’accès restreint. À l’inverse, des crawlers peuvent faire du mauvais usage en usurpant des noms connus et ignorer robots.txt. La solution standard aujourd’hui est la recherche DNS inverse d’IP, mais c’est aussi une gêne pour les opérateurs de site. Je pense qu’il est plus efficace de bloquer toutes les approches d’accès inhabituelles.

    • Je suis d’accord que le modèle publicitaire lui-même pose beaucoup de problèmes. Mais je ne veux pas du web que j’imagine à l’avenir où les créateurs de contenu et les utilisateurs sont séparés par des entreprises IA. Par exemple, quelqu’un peut gérer une newsletter payante, en publier une partie gratuitement pour attirer des visiteurs intéressés, puis convertir certains en payeurs. Ce créateur s’attend à ce que la « montée en gamme » (upsell) se fasse forcément après la lecture du contenu. Si un crawler IA saute cette phase et extrait uniquement le contenu essentiel, il n’y a alors aucune raison de mettre quoi que ce soit gratuitement sur le web. Si les crawlers IA gagnent, tout le monde perd au final.

    • Il existe en réalité beaucoup de pages qui ne sont pas saturées de publicités. Les moteurs de recherche classiques avaient un contrat implicite : « nous te laissons crawler nos pages, apporte-nous du trafic ». Les crawlers IA pour modèles fermés cassent ce contrat. Ils construisent un modèle de données pour des fonctions QA et les entreprises LLM génèrent des milliards de revenus avec les connaissances obtenues via des crawlers, mais rien ne revient au site. Même si on dit que c’est juste pour les demandes d’utilisateurs, le fournisseur LLM reprend la plus grande partie des revenus, et le véritable auteur du contenu ne reçoit même pas de visite. Si Perplexity ignore robots.txt et les blocages pour récupérer des pages pour des demandes utilisateur, il est difficile d’espérer qu’il ne réutilisera pas ces données pour l’entraînement.

  • Ce changement rapide est intéressant. Le web pourrait devenir plus utile s’il se concentre sur des communautés plus petites ou centrées sur les membres (pas forcément géographiques, plutôt sociales). Il sera de plus en plus important de développer sa propre communauté et d’inviter à des espaces plus privés. L’ancien web ouvert sera probablement un terrain pour les machines. Nous avons jadis détesté les bulles, mais en réalité les bulles sont normales et ont un sens tant qu’on n’est pas seul. Quand le web sera débordé de machines et de contenu machine, les gens finiront par réapprendre à se connecter les uns aux autres.

  • Concernant les résultats d’un test fait avec Perplexity AI, où il indiquait des informations détaillées sur un domaine bloqué : Je trouve que c’est une conclusion ambiguë, comme un article marketing qui critique une entreprise spécifique (Perplexity). Il n’est pas clair si Perplexity a fait du crawling systématique de façon automatisée sur toutes les pages, ou s’il n’a fait qu’aller récupérer une page en réponse à une demande utilisateur. La plupart des gens voient une différence entre les deux, et estiment que le second cas est bien plus acceptable.

    • Ça donne un peu l’impression d’une pub de Perplexity. Une fois encore, Cloudflare apparaît comme le bon et Perplexity comme le mauvais, mais Cloudflare fait aussi beaucoup de marketing en se présentant comme « sauveur du web ». Les arguments sont minces, et les deux entreprises ont l’air pris dans un affrontement de géants ; cela pourrait bien être une situation favorable à Perplexity en termes de PR.

    • Récupérer des pages à la place d’un utilisateur peut être en principe acceptable, mais vu que les entreprises IA ont déjà ignoré le copyright et d’autres règles, je pense qu’on ne peut pas exclure la possibilité qu’elles stockent le contenu pour l’utiliser ensuite dans un entraînement futur ou pour un crawling complémentaire.

    • Même la spécification HTTP reflète indirectement cette distinction. Cela apparaît clairement via le concept et le nom même de « user agent ».

    • Si l’IA met tout en cache ou archive les résultats pour être utilisés par beaucoup de gens, cela ne fait finalement pas la différence avec un scraper. On n’a qu’à apprendre à partir de données mises en cache. C’est un intermédiaire qui extrait le contenu essentiel et récupère en prime un signal de valeur de la donnée.

  • Selon la réponse que Perplexity a envoyée à TechCrunch, Le billet de blog de Cloudflare est simplement un geste de « démarchage commercial ». En plus, ils disent que la capture d’écran du blog montre qu’« aucun contenu n’a été accédé ». Ils ajoutent aussi que le bot pointé par le blog n’est pas le leur.

  • Perplexity bloque ses propres crawlers.

    $ curl -sI https://www.perplexity.ai | head -1
    HTTP/2 403
    

    Même en usurpant un user agent de navigateur, le blocage reste identique. Il semble qu’ils utilisent une méthode de détection de crawler assez sophistiquée.

  • Les crawlers « stealth » finiront toujours par gagner. Avec des outils d’automatisation navigateur (W3C WebDriver2, Chrome DevTools Protocol), il devient presque impossible de détecter un scraper. On peut imposer des captchas, mais un développeur peut aussi concevoir un workflow human-in-the-loop pour que des humains le prennent en charge directement pendant les horaires de centre d’appels. Il y a 15 ans, des techniques de scraping basées sur le raster ont déjà été utilisées pour des tests de jeux, et cela rendra la police d’Internet d’aujourd’hui assez mal à l’aise.

    • La raison pour laquelle le crawler stealth ne peut pas gagner, c’est que l’accès à tous les sites de valeur passera nécessairement par une authentification distante.
  • Je pense que l’internet a besoin d’un système de micropaiement. Si un crawler payait ne serait-ce que 1 cent par page, on peut accueillir le crawling 24h/24. Si je paie 1 cent par page consultée, je n’ai pas besoin d’endurer de clicklab ni des règles publicitaires étranges. L’accès gratuit n’a pas toujours besoin d’être bloqué (il le sera en pratique, mais c’est aussi signifiant). Par exemple, on peut imaginer Reddit imposer des commissions élevées mais rembourser pour les bons contenus afin d’améliorer la qualité. Le système « dépôt-retrait-penalité » est aussi envisageable : déposer une caution à l’inscription, la perdre en cas de ban, la récupérer si l’activité se déroule normalement. Cela simplifierait la charge opérationnelle et favoriserait l’amélioration de la qualité des contenus. De telles idées sont nécessaires car internet se remplit de plus en plus de débris. Une autre idée : payer 1 cent à Google par requête, avec remboursement possible si le résultat ne plaît pas. L’IA de Google pourrait mesurer la satisfaction, et si la recherche n’est pas satisfaisante, ne montrer que des contenus populaires bourrés de publicité. Les utilisateurs confieraient alors leur argent à un autre moteur.

  • Si quelqu’un crawle de manière anarchique des sites web au point de menacer la fiabilité du réseau public, il est positif qu’une institution reconnue comme Cloudflare critique publiquement le « scraping frauduleux ». Le fait même que cette polémique fasse office d’étincelle pour la discussion est significatif. À la fin, les acteurs principaux doivent revenir à une ère de recherche où, comme avant, au moins les règles minimales étaient respectées.

    • Je pense qu’à l’ère du « no shame », la sanction sociale n’est pas efficace.
  • Un moteur de recherche personnel que j’ai moi-même construit peut implémenter une fonctionnalité proche de Perplexity. En le comparant avec des pairs, il a reçu une préférence quasi équivalente à Perplexity. Le moteur peut télécharger des pages web à des fins de recherche. Mais dès qu’il tombe sur un captcha ou qu’il est bloqué, il abandonne tout de suite. En revanche, les grandes entreprises IT, avec des milliards de financement VC derrière elles, pensent qu’elles peuvent tout se permettre, et cette attitude me met en colère.

  • Il y a eu l’affirmation selon laquelle « plus de 2,5 millions de sites ont choisi de bloquer intégralement l’apprentissage IA via la fonctionnalité managed robots.txt de Cloudflare ou des règles de blocage de crawlers IA ». En fait, le CEO de Cloudflare aurait appliqué cette option par défaut à tous les clients. Les entreprises qui veulent des recommandations IA ou qui valorisent le trafic devraient désactiver cette option pour éviter une perte financière.

    • Dire que c’est « activé par défaut » est un mensonge. J’ai vérifié directement des sites Cloudflare, et sans aucun réglage, cette fonction n’est pas activée par défaut. S’il n’existe pas de robots.txt, le message affiché est simplement : « envisagez d’activer Cloudflare managed robots.txt ». S’il existe déjà un fichier, il reste intact, et l’avertissement de trafic IA est désactivé manuellement.

    • Sur l’argument « il faut désactiver le réglage si vous voulez des recommandations IA » : Le marketing de contenu, la SEO gamifiée et l’inondation publicitaire nuisent fortement à la qualité de la recherche Google. En revanche, les LLM, jusqu’à présent, n’ont pas vu autant de « gamification ». Un jour, les LLM peuvent aussi se dégrader comme la recherche Google, mais j’espère qu’OpenAI et Anthropic comprendront que c’est peut-être l’une des raisons d’une baisse du trafic Google.

    • L’affirmation « activé par défaut » est totalement fausse. En réalité, rien n’ensuite automatiquement à cette fonction sans réglage. Et même si cela avait été vrai à un moment donné, ce n’est déjà plus le cas; ce n’était déjà pas exact depuis le départ.