bots - prix - protection datadome




Détection de Bot programmatique (6)

J'ai besoin d'écrire du code pour analyser si un utilisateur donné sur notre site est un bot. Si c'est un bot, nous allons prendre des mesures spécifiques. Regarder l'agent utilisateur n'est pas quelque chose qui réussit pour autre chose que des robots amis, car vous pouvez spécifier n'importe quel agent utilisateur que vous voulez dans un bot. Je suis après des comportements de robots hostiles. Diverses idées que j'ai eues jusqu'ici sont:

  • Si vous n'avez pas d'identifiant de navigateur
  • Si vous n'avez pas d'ID de session
  • Impossible d'écrire un cookie

Évidemment, il y a des cas où un utilisateur légitime ressemblera à un bot, mais c'est OK. Existe-t-il d'autres moyens programmatiques pour détecter un robot ou détecter quelque chose qui ressemble à un robot?


Clarifiez la raison pour laquelle vous voulez exclure les bots, et dans quelle mesure vous tolérez une mauvaise classification.

Autrement dit, devez-vous exclure chaque bot au détriment de traiter les utilisateurs réels comme des robots? Ou est-ce que ça va si les robots explorent votre site tant qu'ils n'ont pas d'impact sur les performances?

La seule façon d'exclure tous les robots est de fermer votre site Web. Un utilisateur malveillant peut distribuer son bot sur un nombre suffisant de machines pour lesquelles vous ne seriez pas en mesure de distinguer son trafic des utilisateurs réels. Des astuces comme JavaScript et CSS n'arrêteront pas un attaquant déterminé.

Si un "bon média" est satisfaisant, une astuce qui pourrait être utile est de cacher les liens avec CSS afin qu'ils ne soient pas visibles par les utilisateurs dans un navigateur, mais qu'ils soient toujours dans le code HTML. Tout agent qui suit l'un de ces liens "poison" est un bot.


Eh bien, c'est vraiment pour une page particulière du site. Nous ne voulons pas qu'un bot soumette le formulaire car il bousille le suivi. Honnêtement, les robots amis, Google, Yahoo, etc ne sont pas un problème car ils ne remplissent généralement pas le formulaire pour commencer. Si nous soupçonnions quelqu'un d'être un bot, nous pourrions leur montrer une image captcha ou quelque chose comme ça ... Si elles sont passées, elles ne sont pas un robot et le formulaire est soumis ...

J'ai entendu des choses comme mettre un formulaire en flash, ou faire le javascript de soumission, mais je préfère ne pas empêcher les utilisateurs réels d'utiliser le site jusqu'à ce que je soupçonne qu'ils étaient un bot ...


Les agents utilisateurs peuvent être falsifiés. Les captchas ont été craqués. Les cookies valides peuvent être renvoyés à votre serveur avec des demandes de page. Des programmes légitimes, tels qu'Adobe Acrobat Pro, peuvent être lancés et télécharger votre site Web en une seule session. Les utilisateurs peuvent désactiver JavaScript. Comme il n'y a pas de mesure standard du comportement de l'utilisateur "normal", il ne peut pas être différencié d'un bot.

En d'autres termes: cela ne peut être fait que pour attirer l'utilisateur dans une forme de discussion interactive et espérer qu'ils réussiront le test de Turing, et encore une fois, ils pourraient aussi être un très bon bot.


Pour chaque session sur le serveur, vous pouvez déterminer si l'utilisateur a à tout moment cliqué ou tapé trop vite. Après un nombre donné de répétitions, définissez l'indicateur "isRobot" sur true et conservez les ressources au sein de cette session. Normalement, vous ne dites pas à l'utilisateur qu'il a été détecté par un robot, puisqu'il commencerait juste une nouvelle session dans ce cas.


Vous dites que c'est normal que certains utilisateurs apparaissent comme des robots, par conséquent,

La plupart des robots n'exécutent pas de javascript. Utilisez javascript pour effectuer un appel Ajax sur le serveur qui identifie cette adresse IP comme NonBot. Conservez-le pour une période définie afin d'identifier les futures connexions de cette adresse IP comme de bons clients et d'éviter les appels javascript inutiles.


Hey, merci pour toutes les réponses. Je pense qu'une combinaison de quelques suggestions fonctionnera bien. Principalement, l'élément de forme caché qui chronomètre à quelle vitesse le formulaire a été rempli, et peut-être l'idée de "lien de poison". Je pense que cela couvrira la plupart des bases. Quand vous parlez de bots, vous n'allez pas tous les trouver, alors il ne sert à rien de penser que vous allez ... Bots idiots.