web-dev-qa-db-fra.com

Empêcher les robots d'obtenir le contenu du site / de l'article

Ce n’est pas une question sur les indexeurs, la plupart d’entre eux obéissent au fichier robots.txt .

Mais peut-être avez-vous remarqué des cas connus où Facebook ou Skype suivait les URL postées par utilisateurs ou qui ont été envoyés via un message instantané privé en utilisant ces plateformes. Je crois que ces deux ne sont pas (ou ne seront bientôt plus) seuls à faire cela.

Le problème est que leur visite à une URL spécifique ne doit pas nécessairement obéir à un fichier robots.txt et ils peuvent effectuer une "sauvegarde" du texte qu'ils voient. Bien que je gère des sites assez classiques (organisations à but non lucratif, passe-temps, blogs), je n'aime pas cet "outil de marketing ultime" (c'était la meilleure hypothèse de ce qu'il est). Par conséquent, je pense à un moyen élégant d’éviter que de tels sites reniflent/rampent après avoir obtenu le lien. Quelque chose comme

  • la page entière ne s'affiche pas tant qu'un test humain n'est pas réussi (un cookie est défini de sorte que cela n'est plus nécessaire) - OR -

  • le site est accessible (la page avec tous les modules est présente, etc., pas de problème avec les titres des articles qui y sont publiés) mais le contenu de l'article principal (com_content) est initialement vide et est automatiquement remplacé par Ajax prochainement

Avez-vous des idées sur la manière de mettre en œuvre une prévention contre ces robots afin d’éviter tout contenu du URL de votre site qu’ils ont visité?

5
miroxlav

Il n'y a pas de solution facile, car les robots ont un comportement différent. Je les diviserais en 4 catégories et solutions pour chacune:

  1. Les robots légitimes (Google) respectent généralement le fichier robots.txt et, comme vous l'avez dit, cela ne vous intéresse pas.

  2. Scrappers légitimes (c'est-à-dire Facebook) - ils ont généralement l'agent d'utilisateur approprié, vous pouvez donc les bloquer en fonction de cela (l'agent d'utilisateur).

  3. Les robots qui ne respectent pas le fichier robots.txt - la méthode la plus simple consiste à créer un lien invisible (pour les humains) sur votre page. Le lien devrait être dirigé vers une page où vous enregistrerez l'adresse IP, l'UA et des éléments similaires du robot. Ensuite, vous pouvez mettre en œuvre une vérification de ce journal et s’il y a correspondance, vous ne devriez tout simplement pas le contenu.

  4. Un des scrappers - similaire à Facebook, mais avec un faux agent utilisateur. La seule solution viable consiste à vérifier la prise en charge des cookies. Cependant, cela ne garantit pas à 100% que cela fonctionnera. Il bloquera également les utilisateurs qui ont désactivé les cookies.

3
Ivo

Une méthode serait de bloquer les accès des robots, bien que cela dépende de leur capacité à les identifier.

L'article suivant contient de bons exemples d'amélioration de la sécurité de Joomla.

http://docs.joomla.org/Htaccess_examples_%28security%29

Une méthode consiste à utiliser l'attribut HTTP_REFERER pour bloquer l'accès aux images, par exemple, à moins qu'elles ne soient chargées depuis une page de votre site.

Une autre consiste à utiliser l'attribut HTTP_USER_AGENT pour bloquer l'accès à des moteurs particuliers.

Pour déterminer d'autres chaînes HTTP_USER_AGENT, vous devez inspecter vos journaux d'accès ou, ce que j'ai déjà fait est de modifier l'extension de redirection pour ajouter HTTP_USER_AGENT dans le commentaire.

3
Peter Wiseman

Si vous ne souhaitez pas que le contenu soit accessible publiquement, utilisez la liste de contrôle d'accès de Joomla pour restreindre l'accès, en supprimant l'accès pour le groupe d'utilisateurs (public) par défaut. Si vous ne faites pas cela, ou quelque chose de similaire, votre contenu est public, les gens peuvent le voir, les bots peuvent le voir.

Si vous ne voulez pas que votre contenu soit vu par qui que ce soit, ne le publiez pas dans le monde entier. Si vous le publiez au monde entier, vous ne pourrez pas vraiment dire qui le regarde.

3
Seth Warburton