7
votes

Comment puis-je vous assurer que mon site Web peut bloquer des scripts d'automatisation, des robots bots?

J'aimerais vous assurer que mon site Web bloque des outils d'automatisation tels que Selenium et QTP. Y-a-t-il un moyen de faire ça ? Quels paramètres sur un site Web sont-ils liés à l'échec?


9 commentaires

Pourquoi ferais-tu ça ? Étant donné que les outils d'automatisation sont fabriqués sur des utilisateurs MIMIM, le meilleur moyen de les bloquer est de débrancher votre serveur Web, de verser votre béton dessus, puis de fuir. Mais peut-être que vous avez une bonne raison.


Plus d'une question pour Serverfault - Si vous avez un bon pare-feu - limitez la quantité de connexions TCP par / second (ou x heure) par adresse IP ou utilisateur. pourrait être une fiche Apache en aussi.


Je suis d'accord avec @scharron - qu'essayez-vous d'atteindre? Si vous comprenez en quelque sorte que vous bloquez Selenium / QTP, qu'est-ce que les gens d'arrêter d'essayer avec un autre outil ou en écrivant leur propre avec CURL , wget ou apache httpclient httpclient ?


Je pense que la meilleure idée est de rendre votre utilisateur / utilisateurs à utiliser un navigateur qui n'est pas pris en charge par selenium et que de vérifier l'agent utilisateur.


Je ne pense pas que certains pirates informatiques iront pour une attaque DOS avec un outil de test. On préférerait courber votre serveur dans une boucle SH, de manière plus facile.


Pour le dossier, je pense que c'est une question valable. Les outils tels que le sélénium sont simples à utiliser, il est possible qu'un utilisateur avec peu de connaissances techniques puisse écrire un script qui enfreint les conditions du propriétaire du site. Les exemples incluent entrer dans une compétition, soumettre un vote, commentaire ou raclage du contenu. Une fois qu'un script est écrit pour ceux-ci, il pourrait facilement être exécuté à plusieurs reprises.


Son question non valide, l'utilisateur pourrait également demander à ses amis de cliquer sur lui. Si la page n'est pas sécurisée que le blocage du sélénium ne vous donnera rien.


Mon motif de poser la question est similaire à ce que Dave a mentionné. Les outils automatisés tels que le sélénium peuvent être exécutés dans une boucle et je voulais voir s'il y a un moyen de bloquer cela. Tant qu'un humain clique sur, c'est bien pour moi. Depuis les réponses, il semble que Captcha soit la seule solution. Merci beaucoup.


Je pense que ce qu'il veut dire, c'est comment bloquer les scripts automatisés fonctionnant sur son site Web.


4 Réponses :


3
votes

En tenant dûment compte des commentaires sur la question initiale demandant "pourquoi sur Terre feriez-vous cela?", Vous devez essentiellement suivre la même stratégie que tout site utilise pour vérifier qu'un utilisateur est en réalité humain. Des méthodes telles que demander aux utilisateurs d'authentifier ou d'entrer du texte à partir d'images ou de ce type de travail fonctionnent probablement, mais cela aura probablement l'effet de bloquer Google Crawlers et de tout le reste.

Faire n'importe quoi basé sur des chaînes d'agent d'utilisateur ou de tout ce qui est comme ça est principalement inutile. Ceux-ci sont triviaux à faux.

Les connexions limitatives de taux ou similaires peuvent avoir une efficacité limitée, mais il semble que vous allez également bloquer par inadvertance tous les robinets Web.


4 commentaires

Je suis d'accord avec @gian le meilleur moyen d'empêcher que quelqu'un d'automatiser l'interaction de l'utilisateur avec votre site est d'introduire quelque chose comme un captcha. EN.Wikipedia.org/wiki/captcha


Prenez-le au niveau suivant à l'aide de Recaptcha ( en.wikipedia.org/wiki/recaptcha ) . Ensuite, vous empêchez l'interaction automatisée tout en aidant à numériser de vieux livres et journaux!


Je ne pense pas que CAPTCHA est la meilleure solution car ils sont très bon marché pour casser. Quelqu'un runnign Les scripts automatisés peuvent facilement le contourner. Si vous ne voulez pas que quelqu'un exécute des scripts automatisés sur votre site Web, la solution est de ne pas avoir de site Web en premier lieu.


Quelle suggestion étrange. Votre solution pour empêcher l'accès automatisé à un site Web est de ne pas avoir de site Web?



3
votes

Alors que ces questions semblent être étranges, c'est drôle, j'ai essayé d'enquêter sur des possibilités

En plus d'ajouter un CAPTCHA qui est la meilleure et la seule solution ultime, vous pouvez bloquer selenium en ajoutant le JavaScript suivant à vos pages ( Cet exemple sera redirigé vers la page Google, mais vous pouvez faire tout ce que vous voulez): P>

<script>
var loc = window.parent.location.toString();
if (loc.indexOf("RemoteRunner.html")!=-1) {
  // It is run in Selenium RC, so do something
  document.location="http://www.google.com";
}
</script>


0 commentaires

-2
votes

Pour être à 100% certain qu'aucun rouleau / scripts automatisé ne peut être exécuté sur vos sites Web, vous n'avez pas de site Web en ligne. Cela répondra à vos besoins avec certitude.

CAPTCHA est facile à casser si pas cher, grâce aux méthodes du crowdsourcing et des OCR.

Les proxies peuvent être trouvés dans la nature gratuitement ou en vrac sont disponibles à des coûts extrêmement bas. Encore une fois, inutile de limiter les taux de connexion ou de détecter des robots.

Une approche possible peut être dans votre logique d'application, mettre en œuvre des moyens d'augmenter l'heure et le coût d'accès au site en ayant des éléments tels que la vérification du téléphone, la vérification de la carte de crédit. Votre site Web ne sortira jamais du sol car personne ne fera confiance à votre site à la petite enfance.

Solution: Ne mettez pas votre site Web en ligne et n'attendez pas à pouvoir éliminer efficacement les robots et les scripts de fonctionnement.


0 commentaires

0
votes

Ceci est une question valide et est possible. Essayez de vous connecter à Google avec SELENIUM et vous constaterez rapidement qu'il affichera un message indiquant qu'il n'autorise pas les utilisateurs à se connecter avec le logiciel d'automatisation. Voici un post expliquant comment il peut être fait à l'aide de JavaScript Un site Web peut-il détecter un site Web lorsque vous utilisez sélénium avec chromedriver?


0 commentaires