Détection de Bot programmatique
J'ai besoin d'écrire un peu de code pour analyser si oui ou non un utilisateur donné sur notre site est un bot. Si c'est un bot, nous allons prendre des mesures précises. En regardant l'Agent Utilisateur n'est pas quelque chose qui est un succès pour rien, mais sympathique robots, comme vous pouvez spécifier n'importe quel utilisateur de l'agent que vous voulez à un bot. Je suis après les comportements des robots hostiles. Diverses idées que j'ai eu jusqu'à présent sont:
- Si vous n'avez pas de navigateur ID
- Si vous ne disposez pas d'un ID de session
- Incapable d'écrire un cookie
Évidemment, il y a certains cas où un utilisateur légitime ressemblera à un bot, mais c'est ok. Existe-il d'autres programme permettant de détecter un bot, ou de détecter quelque chose qui ressemble à un bot?
source d'informationauteur | 2008-12-04
Vous devez vous connecter pour publier un commentaire.
Clarifier la raison pour laquelle vous voulez exclure les bots, et le degré de tolérance que vous êtes de mauvaise classification.
Qui est, vous avez pour exclure tout seul bot à la charge de traiter les vrais utilisateurs, comme des robots? Ou est-ce correct si les robots explorer votre site aussi longtemps qu'ils n'ont pas d'impact sur les performances?
La seule façon d'exclure tous les robots est à l'arrêt de votre site web. Un utilisateur malveillant peut distribuer leurs bot assez de machines que vous ne seriez pas en mesure de distinguer le trafic des utilisateurs réels. Des astuces comme le JavaScript et le CSS ne s'arrêtera pas un attaquant déterminé.
Si un "juste milieu" est satisfaisante, un truc qui pourrait être utile est de masquer des liens avec les CSS de sorte qu'ils ne sont pas visibles pour les utilisateurs dans un navigateur, mais sont encore dans le code HTML. Tout agent qui suit l'un de ces "poison" liens est un bot.
Les agents utilisateurs peuvent être truquées. Les Captchas ont été fissuré. Valide les cookies peuvent être envoyés de nouveau à votre serveur avec des requêtes de page. Les programmes légitimes, telles que Adobe Acrobat Pro permet d'aller dans et de téléchargement de votre site web en une seule session. Les utilisateurs peuvent désactiver le JavaScript. Depuis il n'y a pas de mesure standard de la "normale" du comportement de l'utilisateur, il ne peut pas être différencié d'un bot.
En d'autres termes: il ne peut pas être fait à court de tirer l'utilisateur dans une certaine forme de conversations et de l'espoir qu'ils passent le Test de Turing, puis de nouveau, ils pourraient être vraiment un bon bot trop.
Vous dire qu'il est normal que certains utilisateurs apparaissent comme des robots, par conséquent,
La plupart des robots ne peuvent pas exécuter javascript. Utiliser javascript pour faire une requête Ajax comme l'appel vers le serveur qui identifie cette adresse IP NonBot. Magasin que pour une période de temps définie pour identifier les futures connexions à partir de cette adresse IP comme de bons clients et à éviter le gaspillage javascript appels.
Un test simple est le javascript:
L'not-a-bot.php pouvez ajouter quelque chose dans la session de drapeau que l'utilisateur n'est pas un bot, puis revenir à un seul pixel gif.
L'URL est interrompue jusqu'à ce déguisement de le bot.
Voici une idée:
La plupart des robots ne peuvent pas télécharger les css, le javascript et les images. Ils ont juste analyser le code html.
Si vous pouviez garder une trace de la session d'un utilisateur de savoir si ou de ne pas télécharger tous les ci-dessus, par exemple par l'acheminement de toutes les demandes de téléchargement par le biais d'un script qui enregistre les tentatives, vous pouvez rapidement identifier les utilisateurs qui ne télécharger que le html brut (très peu normal utilisateurs de le faire).
Pour chaque session sur le serveur, vous pouvez déterminer si l'utilisateur est à tout moment en cliquant ou en tapant trop vite. Après un certain nombre de répétitions, de définir la "isRobot" drapeau de vrai et de conserver les ressources à l'intérieur de cette session. Normalement, vous ne dites pas à l'utilisateur qu'il a été robot a détecté, car il venait juste de démarrer une nouvelle session dans ce cas.
Bien, c'est vraiment pour une page particulière du site. Nous ne voulons pas d'un bot de la soumission du formulaire b/c il bousille le suivi. Honnêtement, l'amicale des bots, Google, Yahoo, etc ne sont pas un problème car ils ne sont généralement pas à remplir le formulaire pour commencer. Si l'on soupçonne quelqu'un d'être un bot, nous pourrions leur montrer une image captcha ou quelque chose comme ça... S'ils ont réussi, ils ne sont pas un bot et le formulaire soumet...
J'ai entendu des choses comme mettre un formulaire en flash, ou de faire les soumettre javascript, mais je préfère ne pas empêcher les utilisateurs d'utiliser le site jusqu'à ce que je soupçonne qu'ils ont été un bot...
Je pense que votre idée avec la vérification de l'id de session sera déjà très utile.
Une autre idée: Vous pourriez vérifier si les ressources intégrées sont téléchargés.
Un bot qui ne charge pas les images (par exemple, pour gagner du temps et de bande passante) devrait être possible de les distinguer à partir d'un navigateur qui prend généralement de charger les images intégrées dans une page.
Un tel contrôle pourrait ne pas être adapté comme un contrôle en temps réel parce que vous auriez à analyser une sorte de journal de serveur qui peut prendre beaucoup de temps.
Hey, merci pour toutes les réponses. Je pense qu'une combinaison de quelques suggestions de travail. Essentiellement, l'élément de formulaire qui fois à quelle vitesse le formulaire a été rempli, et, éventuellement, le "poison " lien" idée. Je pense qu'il couvre la plupart des bases. Lorsque l'on parle de robots des spammeurs, vous n'allez pas les trouver tous, donc il n'y a pas de point de penser que vous... Stupide bots.