Tactiques pour gérer les robots qui se conduisent mal


9

J'ai un site qui, pour des raisons réglementaires, peut ne pas être indexé ou recherché automatiquement. Cela signifie que nous devons éloigner tous les robots et les empêcher d'araignées sur le site.

De toute évidence, nous avons eu un fichier robots.txt qui interdit tout de suite depuis le début. Cependant, l'observation du fichier robots.txt est quelque chose que seuls les robots se comportent bien. Récemment, nous avons eu des problèmes avec des robots moins bien comportés. J'ai configuré Apache pour interdire quelques agents utilisateurs, mais il est assez facile de contourner cela.

Donc, la question est, existe-t-il un moyen de configurer Apache (peut-être en installant un module?) Pour détecter un comportement de type robot et répondre? D'autres idées?

Pour le moment, tout ce que je peux faire est d'interdire les adresses IP sur la base d'une inspection manuelle des journaux et ce n'est tout simplement pas une stratégie viable à long terme.


Étant donné que vous posez des questions sur les modules Apache (consultez mod_evasive) et que votre solution peut finir par impliquer des analyses de journaux personnalisées et des règles iptables, cette rubrique peut être un meilleur candidat pour ServerFault.com si vous avez des questions sur le blocage de comportements de robots spécifiques.
danlefree

Réponses:


7

Vous pouvez créer un lien vers une page cachée qui, lorsqu'elle est visitée, capture l'agent utilisateur et l'adresse IP du bot, puis les ajoute l'un ou les deux à un fichier .htaccess qui les bloque définitivement. Il est automatisé, vous n'avez donc rien à faire pour le maintenir.


C'est une idée très intéressante, bien qu'au cas où ils utilisent un agent utilisateur très générique, vous ne voudriez pas bloquer automatiquement tout agent utilisateur.
Kris

Je m'en tiendrai alors aux adresses IP. De plus, si vous utilisez des adresses I et voyez un modèle à partir d'un bloc d'adresses IP, vous pouvez facilement les bloquer toutes avec une règle simple au lieu de maintenir une longue liste d'adresses IP individuelles.
John Conde

3
Vous pouvez utiliser la méthode décrite pour empêcher de manière négligente les mauvais robots d'explorer votre site. Mais 1) Il est possible de contourner (les mauvais bots - et leurs maîtres - peuvent apprendre à identifier les pots de miel et savoir comment les éviter); et 2) Cette méthode peut également bloquer les utilisateurs humains légitimés auxquels ont été réaffectées des adresses IP qui ont été inscrites sur la liste noire comme appartenant à des robots malhonnêtes. Si vous avez une obligation légale ou réglementaire de ne pas indexer ou rechercher automatiquement votre site, vous devez utiliser une authentification appropriée et n'accorder l'accès qu'aux utilisateurs authentifiés. Tout le reste n'est pas sécurisé.
Radical gratuit du

Bonne idée. Mais, si je l'ai implémenté, je parie que je continuerais à frapper accidentellement le pot de miel moi-même et que je resterais bloqué sur mon propre site.
JW01

@ JW01 Tout ce que vous avez à faire pour éviter cela n'est pas de visiter la page qui gère cela. Puisqu'il n'y a pas de contenu, cela devrait être simple à faire.
John Conde

2

Vous pouvez vous baser sur le travail effectué par d'autres personnes pour identifier les mauvaises adresses IP en utilisant un module Apache qui s'interface avec la liste noire IP de Project Honeypot . Si vous faites cela à grande échelle, il serait probablement poli d'offrir de faire fonctionner un pot de miel.


J'ai été étonné lorsque j'ai ajouté la liste noire IP de Project Honeypot sur mon site. Des années d'angoisse se sont terminées si simplement en bloquant les méchants. Je pense que vous pouvez également détecter les robots des moteurs de recherche. Donc, plus 1 pour ça.
JW01

Mais le nœud du problème est le suivant: si vous avez des pages publiques, attendez-vous à ce qu'elles soient indexées. Donc, une sorte d'authentification est nécessaire. Voir la réponse de Michael Hampton .
JW01

2

Comme Gisle Hannemyr l'a mentionné dans un commentaire , la meilleure façon de le faire est d'exiger des connexions de tous les utilisateurs et de ne pas fournir le contenu restreint à toute personne non connectée.

Si vous ne pouvez pas exiger de connexion pour une raison quelconque, il y a encore quelques solutions de rechange que vous pouvez utiliser (avertissement: les deux sont en partie ou complètement de ma faute):

  1. L' ensemble de règles OWASP ModSecurity Core contient un certain nombre de règles conçues pour détecter l'automatisation, même lorsque le bot a pris des mesures pour se déguiser en navigateur (par exemple, truquer sa chaîne User-Agent). Si vous contrôlez entièrement votre serveur, comme un VPS, un serveur dédié ou quelque chose de plus grand, vous pouvez utiliser ces règles avec ModSecurity .

    Cet ensemble de règles contient également d'autres règles destinées à arrêter une grande variété d'activités inappropriées; si vous ne l'avez pas regardé, vous devriez certainement le faire.

  2. Si vous ne contrôlez pas complètement votre serveur (c'est-à-dire que vous êtes sur un hébergement Web partagé) et que votre hôte ne vous autorise pas à utiliser vos propres règles ModSecurity, vous pouvez essayer quelque chose au niveau de l'application, comme mon propre Bad Comportement . J'ai démarré ce projet en 2005 pour lutter contre les spams de blogs et les scrapeurs de contenu comme ceux qui vous concernent. Il peut être ajouté à n'importe quel site Web basé sur PHP.

    Je dois également noter que de nombreuses règles de mauvais comportement ont été incorporées dans l'ensemble de règles de base ModSecurity, de sorte que tant que vous avez activé ces règles, les exécuter serait plutôt redondant. Ces règles sont annotées dans le jeu de règles de base comme provenant d'un mauvais comportement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.