
Techniques de Protection contre le Scraping (hors CAPTCHA)
Techniques de Protection contre le Scraping (hors CAPTCHA)
Le scraping est devenu un enjeu majeur pour de nombreux sites web : vol de données, surcharge de trafic, contournement de règles d’usage… Pour s’en protéger, beaucoup pensent immédiatement aux CAPTCHA, mais ils ne sont qu’un outil parmi d’autres.
Cet article présente les principales techniques non intrusives et sans CAPTCHA pour limiter ou détecter le scraping, tout en préservant l’expérience utilisateur.
1. Rate-Limiting
Le rate-limiting consiste à limiter le nombre de requêtes qu’un client peut effectuer dans une période donnée. Il peut s’appliquer par :
- adresse IP
- session
- jeton d’authentification
- user-agent
Avantages : simple et efficace contre la majorité des bots.
Limites : les scrapers avancés utilisent des proxys rotatifs pour contourner cette règle.
2. Détection de Comportements Anormaux
Plutôt que de s’appuyer sur l’identité d’un client, on analyse son comportement :
- navigation trop rapide
- accès séquentiel à toutes les pages
- absence d’événements humains (scroll, clics)
- patterns réguliers typiques des scripts
Cette approche est utilisée par des solutions modernes comme Cloudflare, Datadome ou Akamai.
3. Tokens / Sessions Temporaires
Le serveur peut exiger des jetons temporaires, générés au chargement de la page et valables pour une courte durée.
Ils peuvent servir à :
- autoriser l’accès à des ressources
- valider les appels à une API
- vérifier que le client a exécuté du JavaScript
Intérêt : complique fortement la vie des scrapers qui ne font que des requêtes HTTP brutes.
4. Rendu JavaScript (dynamic rendering)
Certaines données ne sont accessibles qu’après exécution d’un script côté client. Le HTML initial n’inclut pas le contenu final.
Impact : les bots simples tombent sur une page vide, les scrapers avancés doivent utiliser un navigateur headless, plus lent et plus facilement détectable.
5. Obfuscation du Code JavaScript
Minifier, fractionner ou obfusquer le code permet de compliquer la compréhension du fonctionnement interne du site et de ses API.
Cela n’empêche pas le scraping, mais ralentit considérablement le reverse engineering.
6. Honeypots
Les honeypots sont des éléments invisibles à l’utilisateur, tels que :
- champs de formulaire cachés
- liens invisibles
- endpoints signalant du trafic suspect
Si un bot interagit avec ces éléments invisibles, il peut être automatiquement bloqué.
7. Analyse des En-têtes et des User-Agents
Les scrapers oublient souvent d’imiter correctement les en-têtes d’un vrai navigateur. On peut donc détecter :
- User-Agents improbables
- incohérences (langue, OS, headers absents)
- signatures de bots connus
8. Fingerprinting Avancé
Certaines protections analysent :
- empreinte du canvas
- temps d'exécution de scripts
- cohérence entre résolution d’écran et navigateur
C’est une méthode poussée de différenciation entre humain et bot, souvent intégrée dans les WAF avancés.
9. Analyse des IP
On peut analyser ou bloquer les IP provenant de :
- datacenters (AWS, OVH, GCP)
- VPN connus
- proxys publics
Cela limite l’usage de proxys rotatifs pour contourner les protections.
10. Web Application Firewalls (WAF)
Les WAF comme Cloudflare, Imperva ou Datadome fournissent :
- détection comportementale
- challenges JavaScript
- filtrage d’IP suspectes
- règles dynamiques anti-bot
Ils représentent une protection complète et évolutive.
11. Authentification et APIs Privées
Données accessibles uniquement :
- avec une clé d’API
- via OAuth
- après authentification
Les quotas deviennent un moyen supplémentaire de contrôle.
12. Fragmentation et Obfuscation du Contenu
Certaines plateformes chargent des parties du contenu depuis plusieurs endpoints ou utilisent du HTML généré dynamiquement.
Effet : difficulté accrue pour reconstituer l’intégralité des données.
13. Watermarking et Traçabilité
Pour les images, textes, ou listes de données sensibles, on peut ajouter :
- filigranes visibles
- métadonnées invisibles
- informations uniques par session
Cela permet d’identifier la source en cas de vol.
Conclusion
Il n’existe pas de solution parfaite contre le scraping, mais une combinaison de mécanismes offre une défense solide :
- Rate-limiting pour gérer les abus
- Détection comportementale pour filtrer les bots
- Tokens dynamiques pour protéger les endpoints
- WAF pour une solution complète
En combinant ces stratégies, un site devient nettement plus résistant aux tentatives de scraping tout en restant agréable pour les utilisateurs légitimes.


