Le scraping, vous connaissez ? C’est l’extraction d’informations d’un site web avec ou, le plus souvent, sans le consentement du propriétaire du site. Bien que le scraping puisse être effectué manuellement, il est la plupart du temps effectué automatiquement par un robot, bien plus productif qu’un humain.
La plupart des scrapings de sites web sont effectués dans une intention malveillante. Et bien sûr, il existe plusieurs techniques de scraping, contre lesquelles vous pouvez avoir envie de lutter : la conséquence sur votre serveur est souvent très pénible, le site est lent, très lent, et dans certains cas votre site peut même devenir inaccessible. Face aux contre-attaques des propriétaires de sites, les robots scrapers se sont modernisés, ont appris à se faire plus discrets, plus respectueux de votre bande passante… Il n’en reste pas moins qu’ils continuent de piller votre contenu en toute impunité.
Dans cet article nous allons voir comment lutter contre le scraping.
1. Ne pas afficher d’informations sensibles sur votre site web
Cela peut paraître évident, mais c’est la première chose à faire si vous craignez vraiment que des scrapers ne volent vos informations. Après tout, le scraping de sites web n’est qu’un moyen d’automatiser l’accès à un site web donné. Si vous êtes d’accord pour partager votre contenu avec toute personne visitant votre site, peut-être n’avez-vous pas besoin de vous inquiéter des scrapers.
Après tout, Google est le plus grand scraper du monde et personne ne semble s’inquiéter lorsque Google indexe leur contenu. Mais si vous craignez qu’il tombe entre de mauvaises mains, alors peut-être qu’il ne devrait pas se trouver là, tout simplement.
2. Limiter le débit pour les adresses IP individuelles
Si vous recevez des milliers de requêtes à partir d’un seul ordinateur, il y a de fortes chances que la personne qui se trouve derrière ait lancé un scraping automatisé sur votre site. Le blocage des requêtes provenant d’ordinateurs qui sollicitent un serveur à un rythme trop élevé est l’une des premières mesures que les sites emploient pour arrêter les scrapers de pages web.
Attention : Gardez à l’esprit que certains services proxy, VPN ou réseaux d’entreprise présentent tout leur trafic sortant comme provenant de la même adresse IP, vous pourriez donc bloquer par inadvertance de nombreux utilisateurs légitimes qui se connectent tous par la même machine.
De plus, si un scraper dispose de suffisamment de ressources, il peut contourner ce type de protection en configurant plusieurs machines, à diviser d’autant le nombre de requêtes par machine.
Enfin, les scrapers peuvent également ralentir leur robot pour qu’il attende entre les requêtes, et qu’il apparaisse comme un utilisateur légitime.
À lire aussi : Comment détecter les bots dans le trafic de votre site ?
3. Utiliser des CAPTCHAs
Vous le savez, les CAPTCHAs sont conçus pour distinguer les humains des ordinateurs, en présentant des problèmes que les humains trouvent faciles, mais que les ordinateurs ont du mal à résoudre.
Si les humains ont tendance à trouver ces problèmes faciles, ils ont aussi tendance à les trouver extrêmement ennuyeux. Les CAPTCHAs peuvent être utiles, mais doivent donc être utilisés avec parcimonie. Si un visiteur procède à des dizaines de requêtes par secondes, proposez-lui un CAPTCHA, en expliquant éventuellement que son activité est suspecte. Inutile d’embêter tous les visiteurs…
Pour apprendre à installer un reCAPTCHA sur votre site WordPress, vous pouvez suivre notre tutoriel pas à pas.
Le problème reste entier puisque nous l’avons vu, les scrapers peuvent feindre un comportement normal.
4. Créer des pages « Honeypot »
Une technique que j’aime beaucoup : les honeypots (littéralement pots de miel, ou pages leurres) sont des pages qu’un visiteur humain ne visiterait jamais. Un robot chargé de cliquer sur chaque lien d’une page, lui, pourrait tomber dessus.
Par exemple, le lien est peut-être configuré en display: none;
dans le CSS, ou écrit en blanc sur fond blanc pour se fondre dans l’arrière-plan de la page.
Lorsqu’une IP visite une page leurre, vous pouvez raisonnablement penser qu’il ne s’agit pas d’un visiteur humain, et limiter ou bloquer toutes les requêtes de ce client.
5. Exiger une connexion pour l’accès
HTTP est un protocole intrinsèquement apatride, ce qui signifie qu’aucune information n’est conservée d’une requête à l’autre, bien que la plupart des clients HTTP (comme les navigateurs) stockent des éléments tels que les cookies de session.
Cela signifie qu’un scraper n’a pas besoin de s’identifier pour accéder à une page web publique. Mais si cette page est protégée par un identifiant, le scraper doit alors envoyer des informations d’identification avec chaque requête (le cookie de session) afin de visualiser le contenu, qui peut ensuite être tracé pour voir qui scrape votre site.
Cela ne mettra pas fin au scraping, mais vous donnera au moins un aperçu de l’identité des personnes qui accèdent à votre contenu pour se l’accaparer.
6. Changer régulièrement le HTML de votre site web
Les scrapers s’appuient sur la recherche de schémas dans le balisage HTML d’un site, et utilisent ensuite ces structures comme indices pour aider leurs scripts à trouver les bonnes données dans le HTML de votre site.
Si le balisage de votre site change fréquemment ou est incohérent, vous pourrez peut-être frustrer le scraper au point qu’il abandonne.
Cela ne veut pas dire que vous devez refaire entièrement votre site. Il suffit de changer la classe et l’ID dans votre HTML (et les fichiers CSS correspondants) pour faire échouer la plupart des scrapers.
Attention : Notez que les scrapers ne seront pas les seuls à vous détester et que vous risquez également de rendre vos développeurs fous.
7. Intégrer l’information dans des medias objects
La plupart des scrapers Web se contentent d’extraire une chaîne de texte d’un fichier HTML.
Si le contenu de votre site web se trouve à l’intérieur d’une image, d’un film, d’un PDF ou d’un autre format non textuel, vous venez de compliquer considérablement la tâche du scraper : l’analyse du texte d’un objet n’est pas dans ses cordes.
Le gros moins, c’est que cela peut rendre votre site lent à charger, qu’il sera beaucoup moins accessible pour les utilisateurs aveugles (ou autrement handicapés), et cela rendra la mise à jour du contenu difficile. Sans compter que Google ne va pas non plus aimer !
Conclusion
Toute mesure que vous prendrez pour limiter les scrapers de pages web nuira probablement aussi à l’expérience utilisateur. Si vous publiez des informations sur votre site web pour que le public puisse les consulter, vous devez permettre un accès rapide et facile à ces informations. Le problème étant que ce n’est pas seulement pratique pour vos visiteurs, ça le sera aussi pour les scrapers.
Si toutes les solutions présentées ici ne sont pas idéales, certaines d’entre elles peuvent vous aider à lutter efficacement contre les scrapers les plus nuisibles. Mais il sera pratiquement impossible d’éradiquer tous les scrapers !
Vous pensez que votre site internet ou votre application présente des failles de sécurité ? Des experts en cybersécurité peuvent vous proposer des audits pour identifier les potentielles menaces. Publiez votre projet gratuitement sur Codeur.com et recevez leurs devis rapidement.