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é:
- 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). - 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.
- À 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
Vous devez vous connecter pour publier un commentaire.
L'ajouter comme vous l'avez dit:
Et puis l'enlever avec du javascript/jQuery:
Les robots de Spam de ne pas exécuter le code javascript et de voir l'élément, presque n'importe quel navigateur va supprimer l'élément rendant impossible l'a frappé avec la tabulation à
Edit: Le plus simple non-jQuery serait:
Puis de le retirer avec javascript:
Alors qu'ils ne voient pas le lien, mais ont le désavantage d'être en mesure de tabulation pour le lien. Ce n'est pas un 100% corriger, mais je ne pense pas qu'il y a beaucoup de clients qui vont de l'onglet pour le non-lien visible que javascript est désactivé.
Cela semble être une excellente solution! Je ne suis pas vraiment inquiet à propos de JavaScript dépendance, car elle ne touche que l'intersection de deux minorités (ceux qui découvrent les liens par copier-coller ou la tabulation, et ceux qui ont des scripts désactivés). Pourriez-vous développer votre réponse à inclure une solution qui ne dépend pas de jQuery? Je pense qu'il devrait s'agir de document.GetElementById (), et le noeud.parentNode.removeChild(), mais mon expérience avec Javascript est assez limité.
OriginalL'auteur Sander Rijken
cette solution semble bien fonctionner pour moi, heureusement, j'ai un signet. J'espère que cela vous aide.
vous pouvez créer un lien caché comme ça et de le mettre tout en haut à gauche de votre page et pour éviter aux utilisateurs d'accéder trop facilement, vous pouvez utiliser le css pour concevoir une image de logo sur cette image.
si vous êtes intéressé à mettre en place la façon de mettre en liste noire les robots consulter ce lien pour une explication détaillée de howto.
http://www.webmasterworld.com/apache/3202976.htm
Le piège lui-même n'est pas le problème. J'utilise un démon qui reçoivent des messages de le piège de scripts et d'ajouter l'adresse IP à un iptables "récente" match de la règle qui interdit l'IP pendant 1 heure. Le problème est d'ajouter le lien vers les pages de façon propre. Votre solution n'est pas meilleure que les méthodes que j'utilise, car non seulement le lien est accessible (et cliquable), si l'utilisateur de copier-coller le texte à copier le lien et de l'image. Parfois, l'image est intégré, il est parfois rompu, et parfois, l'application ajoute le lien de base pour le lien d'origine.
OriginalL'auteur cmptrwhz