web-dev-qa-db-fra.com

Puis-je limiter les scrapers de contenu en comptant le nombre de hits d'une adresse IP?

Je voudrais interdire les racleurs agressifs qui accèdent à x nombre de pages en une heure, disons 1000. Je prévois de mettre en œuvre une telle vérification via fail2ban et de compter les hits de la même adresse IP via les journaux d'accès. Devrais-je rechercher d'autres indices également? J'ajouterais à la liste blanche les plus gros racleurs comme Google, Bing et interdirais le reste. Je comprends qu’il puisse y avoir des victimes si des centaines d’utilisateurs sont derrière une adresse IP, mais l’interdiction serait temporaire.

1
giorgio79

Oui. Vous pouvez. Je ne connais pas l'outil que vous utilisez, mais voici quelques indices.

  • Pas un moteur de recherche (duh!).
  • Nombre élevé de demandes sur une période plus longue - plus qu'un utilisateur.
  • Ne demande pas une image, CSS ou JS (certains le font, la plupart ne le font pas).
  • Modifie le nom de l'agent et le système d'exploitation sur une période plus longue.
  • Provient d'un bloc/d'une plage d'adresses IP pour l'hébergement Web.

Vérifiez l'accès sur différentes périodes de temps; une heure, un jour, une semaine, un mois. La raison en est que les robots furtifs feront un grand nombre de demandes sur une plus longue période. Si le nombre de demandes est supérieur à celui d'un utilisateur, bloquez-les. Les bots vont se démarquer. Il n'y aura pas de confusion sur celui-ci.

Certains robots demanderont aux images d'échapper au blocage automatisé, mais pourront ou non demander CSS et JS (javascript). Certains vont. Si vous avez une requête pour une page mais aucune des précédentes, c'est un bot. Si vous avez une demande pour une page et seulement un ou deux des trois, alors c'est un bot. Créez un faux fichier JS (avec pratiquement aucun code) et demandez-le dans votre page. Gardez-le très petit pour ne pas affecter les vitesses de téléchargement. Vous voulez juste voir si c'est demandé.

Certains robots modifieront l'agent utilisateur (navigateur) et le système d'exploitation, d'autres non. Si ces éléments changent sur une longue période, il s'agit d'un bot.

Les bots peuvent parfois provenir de lignes d'abonnés (telcos), mais la plupart ne le feront pas. Si vous vérifiez l'adresse IP et qu'elle appartient à une société d'hébergement Web, il s'agit d'un bot. Les lignes d'abonné sont également utilisées. Sur une période de temps, vous apprendrez d'où viennent les bots. Cela deviendra une évidence pour la plupart.

Si vous n'êtes pas sûr si une adresse IP ou un accès est un bot, revenez ici et demandez en vous assurant de poster la demande originale. Je devrais pouvoir aider. Je le fais toute la journée, tous les jours.

J'ai une liste de critères beaucoup plus longue, mais ces déterminations se compliquent et sont des processus protégés. Pardon. Mais la liste ci-dessus devrait être plus que suffisante pour permettre à quiconque de déterminer 99% du temps.

1
closetnoc

Hélas, si vos données valent la peine d'être obtenues, elles le seront. Lorsque nous avons décidé de gérer les adresses IP, les racleurs sont passés à l'horizontale et sont revenus avec des milliers d'adresses IP, chacune nous accédant bien en deçà de la limite que nous avions définie. Je suis moi-même à la recherche de nouvelles astuces pour arrêter des robots qui ne respectent aucune protection.

1
mplungjan