5 points par GN⁺ 2026-03-30 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Miasma est un outil serveur en Rust qui piège les scrapers web d’IA dans une boucle infinie afin de perturber la collecte de données d’entraînement
  • Il redirige le trafic des entreprises d’IA qui collectent massivement le contenu des sites web, et renvoie des données contaminées et des liens autoréférentiels issus de la « poison fountain »
  • Grâce à sa vitesse de traitement élevée et à sa faible consommation mémoire, il permet de se défendre sans gaspiller les ressources serveur
  • En utilisant un reverse proxy Nginx et l’insertion de liens cachés, il guide les scrapers vers le chemin /bots pour former une structure de boucle infinie
  • Il protège les moteurs de recherche légitimes avec des règles d’exception dans robots.txt et autorise les contributions de la communauté en open source

Installation et exécution

  • Installation possible avec Cargo
    • Installer avec la commande cargo install miasma
  • Il est possible de télécharger des binaires précompilés depuis la page Releases de GitHub
  • Pour l’exécuter avec la configuration par défaut, il suffit d’entrer la commande miasma
  • Toutes les options de configuration sont visibles avec miasma --help

Comment configurer le piège à scrapers

  • Définir le chemin /bots comme point d’entrée des scrapers
  • Utiliser Nginx comme reverse proxy pour transmettre les requêtes vers le chemin /bots au serveur Miasma
    location ~ ^/bots($|/.*)$ {
      proxy_pass http://localhost:9855;
    }
    
    • Fait correspondre toutes les variantes de chemin comme /bots, /bots/, /bots/12345
  • Insertion de liens cachés

    • Ajouter dans la page web des liens cachés invisibles pour les visiteurs humains mais détectables par les scrapers
      <a href="/bots" style="display: none;" aria-hidden="true" tabindex="1">
        Amazing high quality data here!
      </a>
      
    • Les attributs display: none, aria-hidden="true", tabindex="1" les rendent invisibles pour les utilisateurs et les outils d’accessibilité
  • Exécution de Miasma

    • Définir /bots comme préfixe de lien et configurer le port ainsi que la limite de connexions simultanées
      miasma --link-prefix '/bots' -p 9855 -c 50
      
    • Autorise jusqu’à 50 connexions simultanées, et les requêtes excédentaires renvoient une réponse HTTP 429
    • Avec 50 connexions, la consommation mémoire attendue est d’environ 50 à 60 Mo
  • Fonctionnement après déploiement

    • Une fois déployé, le scraper suit le chemin /bots et tourne indéfiniment entre des pages de données contaminées
    • Les logs permettent de vérifier en temps réel les requêtes répétées des scrapers

Configuration de robots.txt

  • Il faut ajouter des règles d’exception dans robots.txt afin que les crawlers des moteurs de recherche légitimes n’accèdent pas à Miasma
    User-agent: Googlebot
    User-agent: Bingbot
    User-agent: DuckDuckBot
    User-agent: Slurp
    User-agent: SomeOtherNiceBot
    Disallow: /bots
    Allow: /
    

Options de configuration

  • Une configuration détaillée est possible via les options CLI
Option Valeur par défaut Description
port 9999 Port sur lequel le serveur se lie
host localhost Adresse hôte sur laquelle le serveur se lie
max-in-flight 500 Nombre maximal de requêtes traitables simultanément. Au-delà, une réponse 429 est renvoyée. La consommation mémoire est proportionnelle à cette valeur
link-prefix / Préfixe des liens autoréférentiels. Exemple : /bots
link-count 5 Nombre de liens autoréférentiels inclus dans chaque page de réponse
force-gzip false Applique toujours la compression gzip, indépendamment de l’en-tête Accept-Encoding du client. Utile pour réduire les coûts de transfert
poison-source https://rnsaffn.com/poison2/ Source proxy depuis laquelle récupérer les données d’entraînement contaminées

Développement et contribution

  • Les rapports de bugs et propositions de fonctionnalités peuvent être soumis via GitHub Issues
  • Les contributions de code générées par IA sont automatiquement rejetées
  • Les contributions de la communauté sont les bienvenues, et le projet reste open source

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.