web-dev-qa-db-fra.com

Comment protéger les pages SHTML des robots d'exploration / spiders / scrapers?

J'ai BEAUCOUP de pages SHTML que je souhaite protéger contre les robots d'exploration, les araignées et les scrapers.

Je comprends les limites des SSI. Une mise en œuvre des éléments suivants peut être suggérée conjointement avec la technologie/les technologies de votre choix:

L'idée est que si vous demandez trop de pages trop rapidement, vous êtes ajouté à une liste noire pendant 24 heures et affichez un captcha à la place du contenu, sur chaque page que vous demandez. Si vous entrez correctement le captcha, vous avez été retiré de la liste noire.
Il existe une liste blanche afin que GoogleBot, etc. ne soit jamais bloqué.

Quel est le meilleur/moyen le plus simple de mettre en œuvre cela idée?

Serveur = IIS

Il est facile de nettoyer les anciens n-uplets d’une base de données toutes les 24 heures, donc inutile d’expliquer cela.

6
Adam Lynch

faire un piège araignée:

  1. faire une page comme/spider-trap/somepage.html
  2. bloquer la page sur le fichier robots.txt: interdire:/spider-trap /
  3. placer un lien vers cette page mais le cacher aux yeux de l'homme
  4. bloquer l'IP pour TOUT ce qui se passe atteindre cette page
  5. affichez des astuces lisibles par l'homme et déverrouillez un IP captcha sur cette page.
1
Eric Yin

Comme vous n'avez pas spécifié de technologie de serveur, cette réponse peut ne pas s'appliquer, mais vous ne pouvez pas simplement déplacer les pages SSI dans un répertoire auquel seul l'ID sur lequel le serveur Web s'exécute a accès, mais pas l'ID anonyme.

0
Dave Wise

Eh bien, vous pouvez tout rendre dans un format d'image ... Ce genre de chose a tendance à causer des problèmes moi, et cela peut être fait de manière fiable en utilisant ImageMagick, par exemple. J'ai tendance à gratter de nombreux sites gouvernementaux, qui stockent de grandes quantités d'informations dans des documents numérisés. Blech. Quelle douleur. Mais une utilisation judicieuse de la reconnaissance optique de caractères va faire échec à ce type de sécurité.

S'il peut être visualisé, il peut être gratté. Votre seul recours est d'essayer d'identifier le trafic "mécanique" en surveillant les demandes entrantes et en vérifiant les intervalles entre les demandes de page. Si une adresse IP demande plusieurs pages à la seconde, il s'agit presque certainement d'un grattoir ou d'une araignée. Ou s'il demande une page toutes les 10 secondes, ou un autre intervalle incroyablement précis. Google utilise un algorithme d'apprentissage pour repérer le trafic de type racleur, mais je peux compter sur une main le nombre de fois où je l'ai déclenché (bien que je me heurte très rarement au contenu Google).

Un scripteur intelligent aura cependant une quantité aléatoire de délai intégrée. S'ils sont patients, vous ne pouvez rien faire pour les en empêcher. Peut-être définir une limite supérieure par IP? Vous risquez d'aliéner vos plus gros utilisateurs.

Certaines personnes essaient de bloquer HTTP_USER_AGENTs inconnus, mais c'est une perte de temps: cela n'arrêtera que les mêmes personnes qui respecteraient un fichier robots.txt.

0
Satanicpuppy

Fournissez-vous des instructions aux robots dans un fichier robots.txt?

Utilisez-vous un méta-élément avec une valeur "noindex" dans son attribut content?

Avez-vous spécifié un taux d'analyse plus lent dans l'interface Web Webmaster (ou le robot d'exploration avec lequel vous rencontrez des problèmes)?

0
Will Peavy