Faire un lien totalement invisible?

Je suis sûr que beaucoup de gens ont pensé à cela, mais pour une raison que je ne peux pas le trouver à l'aide de Google et StackOverflow de recherche.

Je voudrais faire un lien invisible (sur la liste noire par robots.txt) pour un CGI ou une page PHP qui "piège" des robots malveillants et les araignées. Jusqu'à présent, j'ai essayé:

  1. Vide des liens dans le corps:
    <a href='/trap'><!-- nothing --></a>

    Cela fonctionne très bien la plupart du temps, avec deux petits problèmes:

    Problème: Le lien est la partie du corps du document. Même si il est assez bien unclickable avec une souris, certains visiteurs toujours frappé par inadvertance alors que le clavier de navigation dans le site avec Tab et Entrée. Également, si elles le copier-coller de la page dans un traitement de texte ou un logiciel de messagerie, par exemple, le piège lien est copié et parfois même cliquable (certains logiciels n'aime pas le vide <a> étiquettes et copie le href, ainsi que le contenu de la balise).

  2. Invisible blocs dans le corps:
    <div style="display:none"><a href='/trap'><!-- nothing --></a></div>

    Cela résout le problème avec la navigation au clavier, au moins dans les navigateurs que j'ai testé. Le lien est effectivement inaccessible à partir de l'affichage normal de la page, tout en restant pleinement visibles pour la plupart d'araignée robots avec leur niveau actuel de l'intelligence.

    Problème: Le lien est-il toujours partie du DOM. Si l'utilisateur de copier-coller le contenu de la page, il réapparaît.

  3. À l'intérieur des blocs de commentaires:
    <!-- <a href='/trap'>trap</a> -->

    Cela supprime le lien du DOM de la page. Eh bien, techniquement, le commentaire est-il toujours partie du DOM, mais elle atteint l'effet désiré que compatible avec les agents utilisateurs ne génère pas de l'élément, de sorte qu'il n'est pas un véritable lien.

    Problème: la Plupart d'araignée de robots d'aujourd'hui sont assez intelligents pour analyser le (X)HTML et ignorer les commentaires. J'ai personnellement vu des bots qui utilisent Internet Explorer COM/ActiveX objets à analyser le (X)HTML et extrait tous les liens par le biais de XPath ou Javascript. Ces types de bots ne sont pas trompés en suivant le piège de lien hypertexte.

J'ai été en utilisant la méthode #3 jusqu'à ce que la nuit dernière, quand j'ai été frappé par un essaim de robots qui semblent être vraiment sélectif sur les liens qu'ils suivent. Maintenant, je suis de retour à la méthode #2, mais je suis toujours à la recherche d'un moyen plus efficace.

Des suggestions, ou d'autre solution que j'ai raté?

OriginalL'auteur Juliano | 2010-09-05