2010-05-05 7 views
13

Nous avons une situation où nous enregistrons les visites et les visiteurs sur les hits de page et les bots sont en train d'obstruer notre base de données. Nous ne pouvons pas utiliser captcha ou d'autres techniques comme celle-ci parce que c'est avant même que nous demandions une contribution humaine, en gros nous enregistrons les hits de page et nous aimerions seulement enregistrer les hits de page par des humains.Comment détecter les bots par programme

Existe-t-il une liste des adresses IP de bot connues? Est-ce que le contrôle des utilisateurs-bot connus fonctionne?

Répondre

19

Il n'y a pas de façon infaillible d'attraper tous les robots. Un bot pourrait agir comme un vrai navigateur si quelqu'un le voulait.

Les bots les plus sérieux s'identifient clairement dans la chaîne d'agent, donc avec une liste de bots connus, vous pouvez équiper la plupart d'entre eux. À la liste, vous pouvez également ajouter des chaînes d'agents que certaines bibliothèques HTTP utilisent par défaut, pour capturer des robots de personnes qui ne savent même pas comment changer la chaîne de l'agent. Si vous venez de consigner les chaînes d'agents des visiteurs, vous devriez être en mesure de choisir ceux à stocker dans la liste.

Vous pouvez également créer un "piège de mauvais bot" en mettant un lien caché sur votre page qui mène à une page qui est filtrée dans votre fichier robots.txt. Les robots sérieux ne suivent pas le lien, et les humains ne peuvent pas cliquer dessus, donc seul le bot qui ne respecte pas les règles demande le fichier.

+1

Vous pouvez également créer un fichier robots.txt pour les robots bien élevés http://www.robotstxt.org/orig.html –

0

Je pense que de nombreux robots seraient identifiables par l'agent utilisateur, mais certainement pas tous. Une liste d'adresses IP connues - je ne compterais pas non plus là-dessus.

Une approche heuristique pourrait fonctionner. Les robots sont généralement beaucoup plus rapides à suivre les liens que les gens. Peut-être que vous pouvez suivre l'IP de chaque client et détecter la vitesse moyenne avec laquelle il suit les liens. Si c'est un crawler, il suit probablement tous les liens immédiatement (ou du moins beaucoup plus vite que les humains).

0

je ne pense pas qu'il y aura une liste d'adresses IP, adresses IP Botnet Botnet n'est pas statique, et personne ne sait qui sont les robots, y compris les utilisateurs qui se comportent comme des robots.

Votre question est sans doute la zone de recherche chaude en ce moment, je suis curieux de savoir si quelqu'un pourrait donner une solution à ce problème.

Vous pouvez utiliser n'importe quel type de technique et comprendre si c'est un humain ou non, alors vous pouvez obtenir les journaux.

0

Avez-vous déjà ajouté un robots.txt? Bien que cela ne résoudra pas l'utilisation malveillante des robots, vous pourriez être surpris par l'activité d'exploration légitime déjà effectuée sur votre site.

+0

Je ne suis pas sûr que le fichier robots.txt les aidera à consigner les visiteurs réels séparément. Ils n'ont pas dit qu'ils voulaient filtrer complètement les bots. –