Méthodes de protection contre le scraping

Salut à tous,

Je cherche à protéger un site contre le scraping.
Le contexte est le suivant :

Le contenu du site est public et ne requiert pas d’inscription
Le contenu du site doit rester public pour des raisons SEO (même contexte que les PagesJaunes en gros)
Nous avons testé un système de black-listage d’IP (avec white-listage des bots de moteurs de recherche) qui a de mauvais résultats en France où beaucoup d’IPs sont partagées (réseaux d’entreprise, utilisateurs mobiles)

Nous avons conscience qu’aucun système n’est parfait, mais nous aimerions avoir le meilleur système possible
Avez-vous des conseils sur le sujet ? Est-ce que l’utilisation de captcha vous semble une bonne piste ?

Merci pour vos idées !

1 J'aime

tu peux essayer de mettre une limite de req/minute et après demander un captcha mais pareil faut faire gaffe à Google et pas le bloquer

Personnellement, j’utilise https://datadome.co/ ça marche à la perfection et couvre tous les domaines (spam refferals, scraping etc…). Tu peux me demander si tu souhaites plus d’infos, en tout cas on l’a mis en place et plus aucun souci.

2 J'aimes

Il n’y a pas de méthode ultime. En scraping tu peux faire tourner les IPs, les usersagents, utiliser un captcha solver, détourner les protections ajax, javascript, utiliser les apis non officiels, les versions mobiles, via l’app, utiliser des workers etc…etc…S’il y avait une méthode infaillible, ça se saurait.

4 J'aimes

Merci à tous pour vos réponses !
@camillebesse : l’objectif c’est de rassurer un partenaire, plus que de garantir qu’il n’y aura aucun scrap, car on sait qu’il y a toujours un moyen :slight_smile:

@fenfir75 : je creuse encore le sujet. Je n’hésiterai pas.

malheureusement, pas de méthodes 100% sur

Ce guide liste pas mal de méthodes : https://github.com/JonasCz/How-To-Prevent-Scraping

2 J'aimes

Sinon fais un site en full flash --> Ok je sors ^^ .

6 J'aimes

recaptcha c’est pas mal surtout le truc des photos.
Sinon, tu as la techniques des pages jaunes, tu mets des bouton, voir le téléphone/le mail.
Et bien sur tu mets des adresses pièges pour pouvoir détecter qui te scrap et envoyer des mises en demeure.

1 J'aime
  • Recaptcha 2 limite un peu le scrap mais c tout : http://zennolab.com/wiki/en:addons:capmonster:rc2

  • Le bouton « page jaunes » ne change rien car on peut facilement émuler un clic sur le bouton.

  • Les adresses pièges c bien pour les scrapers simples mais pour les scrapers un peu + élaborés ,ça ne scrapera que ce qu’aurait vu 1 user normal.

Recaptcha c’est déja un bon début et ça nous ralenti dans nos process de scraping.

Pour ce qui est des boutons type « montrer numéro/email » ils sont inutiles, car soit on peut rejouer/simuler la requête Ajax , soit on peut cliquer dessus avec du headless browser.

Les adresses pièges ne sont efficaces que si l’entité ayant scrapé les données va les publier en ligne, dans le cas contraire on aura du mal à les retrouver et les mettre en demeure…

Sinon, Il existe à ce jour une technique ultime, qui consiste à analyser les mouvements de l’internaute et son comportement sur le site, et clairement si celui-ci se comporte bizarrement davantage comme un robot que comme un humain, on est directement bloqué. Cette technique là, je n’ai jamais pu l’outrepasser…

2 J'aimes

Merci pour ton retour ! As-tu des exemples de site en tête qui ont mis en place ce genre de technique ?
Est-ce que lorsqu’un bot est identifié il est bloqué définitivement ? Ou a-t’il une option pour se justifier ? (type captcha)

merci ! En plus c’est gratuit recaptcha !

Tu peux déjà :

  • Bannir l’ensemble des ranges d’ip des principaux hébergeurs à bas coût : Amazon, Digital Ocean, OVH
  • Bannir l’ensemble des ip des outils de vpn : express vpn, hide my ass etc …
  • Loader ta page en modifiant a chaque fois le DOM dynamiquement.
  • Loader une partie de ton contenu via ajax
  • Mettre le mod_security d’apache
  • Mettre le mod_evasive d’apache
3 J'aimes

le bouton voir le phone c’est pour comptabilisé par IP puis quand trop de visite tu bloque.
Après tu peux limité le display aussi.

Pages jaunes a des adresses pièges visible pour le user et les scrapeurs peuvent pas les différencier. => je pense qu’ils font juste en sorte que ce soit pas le résultat numéro 1…

banir les IP tor aussi
Pour les liste d’IP tu peux regarder les listes d’ip pour les torrent genre peer guard ou autre, ca contient pas mal de range d’ip.
Modifier le dom dynamiquement, c’est super chiant a gérer . Tu peux modifier les id et les classe name mais franchement en debugging et en génération ca représente a gros boulot. Je crois que c’est facebook qui fait ca…
Loader en ajax = pas visible de google = mauvais pour le SEO…

Reste les rotations de proxies privés qui seront durs à contrer sauf à être très drastique sur les pages vues par IP et du coup dégrader fortement l’UX.

Pour les spams traps généralement les bests practices préconisent des emails visibles par les bots et pas par les users (je ne sais pas pour Pages Jaunes), du coup c’est censé limiter un peu le risque en amont.

Tu as aussi des services qui permettent d’identifier une bonne partie des spam traps: ex: https://litmus.com/spam-filter-tests

Dans le cas où tu te prends quand même le spam trap -> si ton IP est blacklistée ->changement d’IP + ndd low cost.

euh en fait je parle pas de spam trap email mais d’email que tu créé manuellement de ton coté et qui sert de spam trap. Dans le sens ou si tu te prends des emails dessus. Tu sais que tu as été scrappé et donc tu peux en retour envoyer une petite mise en demeure.

Si les scrapeurs sont aguerris, l’hébergement des serveurs d’envoi sera dans des pays qui n’ont pas d’accords judiciaires avec la France (ou collaboration difficile) mais qui ne gène pas la deliverabilité .Sachant que le propriétaire d’un domaine peut potentiellement être anonyme.

Si quand même tu arrives à identifier la source et que celle ci n’est pas en France (pays far west par exemple), tu peux faire une croix sur la mise en demeure (d’ailleurs à qui et où l’envoyer ?).

Par ailleurs même si la source est en France et que tu arrives à l’identifier on pourra te rétorquer que l’email est accessible pour un user normal et que l’email en question a été récupéré manuellement pour un envoi classique (sinon pourquoi le publier sur le site ?).Si c’est pour du B2B pas besoin d’opt in en + .
Donc la constitution de la preuve du scrap reste difficile à établir…

ça m’intersse ça les captcha solver, t’as des exemples ?

Capmonster , 2captcha , deathbycaptha…