Découvrez Anubis pour protéger votre site des scrapers d'IA et des bots
t'as des "bots", tu rentres pas !

L'invasion des scrapers IA est devenue un réel problème pour Internet.
Certains bots respectent les règles définies dans le fichier robots.txt mais ils sont loin d'être la majorité !
La plupart de ces bots ignorent ces limitations et surchargent les serveurs en explorant constamment chaque page, parfois plusieurs fois par seconde, jusqu'à rendre un site inutilisable.
Dans un précédent article, j'avais proposé un tuto sur la mise en place d'un blocage via Cloudflare : "Bloquer les bots Bytedance et Bytespider avec Cloudflare".
Pour répondre à ce problème croissant, Xe Iaso a développé une solution : Anubis. Ce reverse proxy ajoute une couche de sécurité en imposant un défi de preuve de travail en SHA256.
Cela oblige les navigateurs et scrapers à résoudre une tâche avant d'accéder au site, et ainsi freine efficacement l'activité des bots tout en protégeant les ressources critiques.
Dis Jamy, comment ça marche ?

Imagine un videur à l’entrée d’un club extrêmement sélect : c’est Anubis.
Pour entrer, il ne suffit pas de dire « je suis humain » : il faut aussi résoudre une petite énigme mathématique !
Les scrapers IA classiques n’arrivent même pas à comprendre la règle du jeu – ils ne savent pas exécuter JavaScript. Et même les scrapers plus évolués sont souvent incapables de gérer les fonctionnalités modernes exigées par Anubis.
Pour couronner le tout, Anubis est particulièrement méfiant envers les requêtes arborant un User-Agent mentionnant « Mozilla » (pratiquement tout le monde se fait avoir ici), ce qui suffit à stopper net la plupart des robots.
Mais attention : Anubis n’est pas qu’un simple portier. Il suit une stratégie bien ficelée, inspirée du hashcash : chaque utilisateur calculera un petit problème avant d’obtenir un laissez-passer, stocké dans un cookie. Ce précieux jeton peut être aléatoirement inspecté et expire après une semaine, forçant régulièrement les visiteurs à montrer patte blanche.
Tout cela repose sur des outils récents pour navigateurs modernes : Anubis utilise des modules ES6, des Web Workers et bien d’autres technologies avancées. Certes, cela laisse de côté les utilisateurs avec des navigateurs dépassés ou JavaScript désactivé, mais c’est le monde d’Internet aujourd’hui – rien n’est parfait, mais ça fonctionne.
La logique des défis, étape par étape

1. Si le User-Agent du client ne contient pas « Mozilla », il est automatiquement autorisé.
2. Si le client n’a pas de cookie contenant un jeton JWT valide, un défi lui est présenté.
3. Si le cookie JWT est expiré, un défi est également présenté.
4. Si le client n’est pas sélectionné dans le cadre d’un filtrage secondaire, il est autorisé à passer.
5. Les clients sélectionnés pour un contrôle secondaire doivent fournir une preuve de travail. Si celle-ci est validée, ils peuvent continuer.
Lorsqu’un défi est soulevé, une page HTML est servie avec un module JavaScript ES6 chargé. Ce script effectue les étapes suivantes :
Le client génère un hachage SHA-256 à partir du défi et d’un nonce.
- Il continue jusqu’à obtenir un hachage commençant par un certain nombre de zéros.
- Le résultat est ensuite envoyé au serveur.
- Si la réponse est correcte, le serveur génère un nouveau jeton JWT signé qui est renvoyé sous forme d’un cookie HTTP.
Ensuite, à chaque requête subséquente, ce cookie est envoyé au serveur.
Les défis sont générés à partir des métadonnées suivantes :
- Accept-Encoding : encodages pris en charge, comme gzip.
- Accept-Language : langue de réponse préférée, par exemple, l’anglais.
- X-Real-IP : adresse IP extraite, souvent via un proxy inverse.
- User-Agent : chaîne décrivant l’agent utilisateur envoyé par le client.
- L’heure UTC arrondie à la semaine.
- Empreinte (hash) de la clé privée ED25519 du serveur Anubis.
Ces données permettent de générer une empreinte unique pour le client. Le serveur et le client peuvent tous deux synchroniser leur horloge, garantissant ainsi la cohérence des défis.
Clés ED25519 dans Anubis :
Anubis utilise une paire de clés ED25519 pour générer les signatures de JWT lorsque les défis sont résolus avec succès. Une nouvelle paire de clés est générée à chaque redémarrage. Actuellement, la synchronisation des clés entre instances n’est pas possible, mais cela sera pris en charge dans une prochaine mise à jour.
Comment installer Anubis ?
Cet article ne détaille pas la procédure d’installation. Votre serviteur mène actuellement des tests sur des environnements de préproduction. Peut-être qu’un tutoriel sera rédigé par la suite, en fonction des résultats.
Anubis se place entre votre reverse proxy (par exemple, Nginx ou Caddy) et le service cible que vous souhaitez sécuriser. Il est important de déployer une instance d’Anubis par service protégé.
L’installation d’Anubis repose principalement sur une image Docker. Bien que d’autres alternatives d’installation puissent exister, le support officiel se limite actuellement à cette méthode.
En termes de ressources nécessaires, Anubis est relativement léger et pourrait fonctionner avec seulement 128 Mo de RAM tout en gérant de nombreuses connexions simultanées. Cependant, ce service pourrait ne pas être adapté aux applications reposant sur des WebSockets ou des connexions longues, bien que cela reste à valider en conditions réelles.
Pour conclure
Dans un monde idéal, Anubis n'aurait aucune raison d'exister !
Les robots d’extraction respecteraient les conventions implicites d’Internet et éviteraient systématiquement les sites demandant de ne pas être explorés.
Malheureusement, nous savons que ce n’est pas le cas.
Face à cette réalité, il devient indispensable de prendre des mesures pour protéger nos serveurs contre les abus.
C'est dans cet esprit qu'Anubis a vu le jour. L'outil, bien que conçu pour protéger vos serveurs, n’est pas parfait. Comme nous l’avons mentionné plus tôt, il impose par exemple l’activation de JavaScript ou l’utilisation d’un navigateur moderne. De plus, il peut être difficile à installer sur des hébergements mutualisés et nécessite un certain investissement en temps pour être pleinement maîtrisé.
Pour aller plus loin
Dépôt github : https://github.com/TecharoHQ/anubis/
Documentation : https://anubis.techaro.lol/docs/
Tester Anubis : https://git.xeserv.us/xe/anubis-test/src/branch/main/README.md
Utiliser la preuve de travail pour bloquer les robots : https://www.pofilo.fr/post/2025/04/14-mise-en-place-anubis/
FOSS infrastructure is under attack by AI companies : https://thelibre.news/foss-infrastructure-is-under-attack-by-ai-companies/
Anubis - Protégez votre site web contre les scrapers IA en moins de 15 minutes par Korben : https://korben.info/anubis-protection-site-web-bots-ia.html
Installation de Anubis par Sebsauvage via son Wiki : https://sebsauvage.net/wiki/doku.php?id=anubis
Protéger tous ses sites avec Anubis : https://dryusdan.space/proteger-tous-ses-sites-avec-anubis
Recommandations
Journal des modifications
02/09/2025
Nouveautés
Ajout de l'article de Dryusdan
25/05/2025
Nouveautés
Ajout des recommandations
19/05/2025
Améliorations
Ajout des liens de Korben et Sebsauvage dans la rubrique pour Aller plus loin
08/05/2025
Améliorations
Ajout du lien The Libre dans la section en savoir plus
03/05/2025
Améliorations
Ajout du lien de Profilo dans la section en savoir plus


