J'ai un site qui, pour des raisons réglementaires, ne peut pas être indexé ou recherché automatiquement. Cela signifie que nous devons garder tous les robots à l’écart et les empêcher de parcourir le site.
Évidemment, nous avons eu un fichier robots.txt qui interdit tout dès le début. Cependant, observer le fichier robots.txt est quelque chose que seuls les robots bien comportés font. Récemment, nous avons eu des problèmes avec des robots moins sages. J'ai configuré Apache pour interdire quelques agents utilisateurs mais il est assez facile de contourner cela.
La question est donc la suivante: y a-t-il un moyen de configurer Apache (en installant peut-être un module?) Pour détecter un comportement semblable à un robot et y répondre? D'autres idées?
Pour le moment, tout ce que je peux faire, c'est interdire les adresses IP sur la base d'une inspection manuelle des journaux, ce qui n'est tout simplement pas une stratégie viable à long terme.
Vous pouvez créer un lien vers une page masquée qui, une fois consultée, capture l’agent utilisateur et l’adresse IP du bot, puis les ajoute à un fichier .htaccess qui les bloque de manière permanente. C'est automatisé, vous n'avez donc rien à faire pour le maintenir.
Vous pouvez utiliser le travail d'autres personnes pour identifier les adresses IP incorrectes en utilisant l'un des éléments suivants: module Apache qui s'interface avec la liste noire des adresses IP de Project Honeypot . Si vous faites cela à grande échelle, il serait probablement poli de proposer de gérer un pot de miel.
Comme Gisle Hannemyr mentionné dans un commentaire , la meilleure façon de le faire est d’exiger la connexion de tous les utilisateurs et de ne pas fournir le contenu restreint à toute personne qui n’est pas connectée.
Si vous ne pouvez pas exiger de connexion pour une raison quelconque, il existe toujours quelques solutions de remplacement que vous pouvez utiliser (avertissement: les deux sont partiellement ou totalement de ma faute):
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, simuler sa chaîne User-Agent). Si vous avez le plein contrôle de votre serveur, tel qu'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 absolument.
Si vous ne maîtrisez pas totalement votre serveur (c.-à-d. 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, telle que la mienne - Mauvais comportement . J'ai lancé ce projet en 2005 pour lutter contre le spam sur les blogs et les scrapers tels que 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 Bad Behavior ont été incorporées dans l'ensemble de règles ModSecurity Core. Par conséquent, tant que vous avez activé ces règles, leur exécution serait plutôt redondante. Ces règles sont annotées dans le jeu de règles principal comme provenant de Mauvais comportement.