Zurück zu den Updates
New releaseSep 20, 2026

miasma v0.4.3

Locken Sie KI-Web-Scraper in eine endlose Giftgrube.

Teilen

🌀 Miasma

No AI crates.io downloads Docker Pulls GitHub commits since latest release

Web crawlers getting stuck in a cloud of poison miasma.

KI-Unternehmen durchkämmen das Internet kontinuierlich in enormem Umfang und verschlingen all seine Inhalte, um sie als Trainingsdaten für ihre nächsten Modelle zu verwenden. Wenn du eine öffentliche Website betreibst, stehlen sie bereits deine Arbeit.

Miasma ist hier, um dir beim Zurückschlagen zu helfen! Starte den Server und leite jeden bösartigen Datenverkehr dorthin. Miasma sendet vergiftete Trainingsdaten aus dem poison fountain zusammen mit mehreren selbstreferenziellen Links. Es ist ein endloses Buffet aus Slop für die Slop-Maschinen.

Miasma ist blitzschnell und hat einen minimalen Speicherbedarf – du solltest keine Rechenressourcen verschwenden müssen, um die Blutsauger des Internets abzuwehren.

[!CAUTION] Die Bereitstellung dieser Software birgt inhärente Risiken. Bitte lies vor der Verwendung vollständig die Konfiguration und den Haftungsausschluss.

Verwendung

Du kannst Miasma lokal oder mit dem offiziellen Docker-Image ausführen.

Wenn du Miasma in einen bestehenden Rust-Server integrieren möchtest, kannst du auch Miasma als Bibliothek verwenden.

Lokal ausführen

Installation mit cargo (empfohlen):

cargo install miasma

Alternativ kannst du ein vorgefertigtes Binary von releases herunterladen.

Von der Community gepflegte Pakete sind auch für eine Vielzahl von Paketmanagern verfügbar:

Packaging status

Starte Miasma mit der Standardkonfiguration:

miasma

Alle verfügbaren Konfigurationsoptionen anzeigen:

miasma --help

Mit Docker ausführen

Führe Miasma mit dem offiziellen Docker-Image aus:

docker run --rm -p 9999:9999 austinweeks/miasma:latest

Übergebe dieselben Konfigurationsflags, die du auch lokal verwenden würdest:

docker run --rm -p 9999:9999 austinweeks/miasma:latest \
    --link-prefix '/naughty-bots' \
    --max-in-flight 30

Oder führe es innerhalb eines Docker-Compose-Clusters aus:

services:
  miasma:
    image: austinweeks/miasma:latest
    command: ["--link-prefix", "/naughty-bots", "--max-in-flight", "30"]
    ports:
      - 9999:9999

So fängst du Scraper

Lass uns ein Beispiel durchgehen, wie du einen Server einrichtest, um Scraper mit Miasma zu fangen. Wir wählen /naughty-bots als Pfad unseres Servers, um Scraper-Datenverkehr dorthin zu leiten. Wir verwenden Nginx als Reverse-Proxy unseres Servers, aber dasselbe Ergebnis lässt sich mit vielen verschiedenen Setups erzielen.

Wenn wir fertig sind, werden Scraper wie folgt gefangen:

Flow chart depicting cycle of trapped scrapers.

Innerhalb unserer Website fügen wir ein paar versteckte Links ein, die zu /naughty-bots führen.

<a
  href="https://github.com/austin-weeks/miasma/blob/main/naughty-bots"
  style="display: none;"
  aria-hidden="true"
  tabindex="-1"
>
  Amazing high quality data here!
</a>

Die Attribute style="display: none;", aria-hidden="true" und tabindex="-1" stellen sicher, dass die Links für menschliche Besucher völlig unsichtbar sind und von Screenreadern und Tastaturnavigation ignoriert werden. Sie werden nur für Scraper sichtbar sein.

Unseren Nginx-Proxy konfigurieren

Da unsere versteckten Links auf /naughty-bots/ zeigen, konfigurieren wir diesen Pfad so, dass Anfragen an Miasma weitergeleitet werden. Nehmen wir an, wir betreiben Miasma auf Port 9855.

Wir richten außerdem eine aggressive Ratenbegrenzung basierend auf dem User-Agent des Scrapers ein, um sicherzustellen, dass wir uns nicht versehentlich selbst DDoS-en.

http {
  # Reserve 8MB memory for tracking user agents
  limit_req_zone $http_user_agent zone=miasma:8m rate=1r/s;

  server {
    location = /naughty-bots {
      port_in_redirect off;
      return 301 /naughty-bots/;
    }
    location /naughty-bots/ {
      # Rate limit via the 'miasma' zone with no queueing
      limit_req_status 429;
      limit_req zone=miasma burst=5 nodelay;

      # Proxy requests to Miasma
      proxy_pass http://localhost:9855/;
    }
  }
}

Diese Konfiguration fängt alle Varianten des Pfads /naughty-bots ab -> /naughty-bots, /naughty-bots/, /naughty-bots/12345 usw.

Miasma ausführen

Zuletzt starten wir Miasma und geben /naughty-bots als Link-Präfix an. Dies weist Miasma an, Links mit /naughty-bots/ zu beginnen, was sicherstellt, dass Scraper ordnungsgemäß durch unseren Nginx-Proxy zurück zu Miasma geleitet werden.

Begrenzen wir die Anzahl der maximal gleichzeitigen Verbindungen auf 50. Bei 50 Verbindungen können wir mit einer Spitzenspeichernutzung von 50-60 MB rechnen. Beachte, dass alle Anfragen, die dieses Limit überschreiten, sofort eine 429-Antwort erhalten, anstatt in eine Warteschlange gestellt zu werden.

Wir zwingen Miasma außerdem, alle Antworten gzip-komprimiert zu senden, unabhängig vom Accept-Encoding-Header der Scraper. Da gzip-komprimierte Antworten deutlich kleiner sind, hilft uns dies, Egress-Kosten zu senken.

Während wir Scraper für immer gefangen halten könnten, verwenden wir die Optionen für Link-Anzahl und maximale Tiefe, um Scraper freizulassen, nachdem sie etwa 100K vergiftete Seiten konsumiert haben. Mit diesem Setup sendet Miasma etwa 250MB Gesamtdaten pro Scraper.

miasma --link-prefix '/naughty-bots' -p 9855 -c 50 --force-gzip --link-count 5 --max-depth 8

Viel Spaß!

Lass uns bereitstellen und zusehen, wie sich fehlverhaltende Bots gierig an unserer endlosen Slop-Maschine bedienen!

robots.txt

Schütze wohlverhaltende Bots und Suchmaschinen unbedingt vor Miasma über deine robots.txt!

User-agent: *
Disallow: /naughty-bots

Metriken

Miasma bietet die Möglichkeit, Scraper-Anfragezahlen pro eindeutigem User-Agent zu verfolgen. Dies kann nützlich sein, um zu identifizieren, welche Bots deine Website am stärksten belasten. Metriken werden in eine lokale SQLite-Datenbankdatei geschrieben und können an einem Endpunkt deiner Wahl eingesehen werden.

Konfiguration

Miasma kann über CLI-Flags oder eine Konfigurationsdatei konfiguriert werden.

OptionStandardBeschreibung
config-fileLade Konfigurationsoptionen aus einer Datei am angegebenen Dateipfad. Die Formate YAML, TOML und JSON werden unterstützt. Siehe docs für Beispiele.
port9999Der Port, an den der Server gebunden werden soll.
hostlocalhostDie Host-Adresse, an die der Server gebunden werden soll.
unix-socketBinde an einen Unix-Domain-Socket statt an eine TCP-Adresse. Nur auf Unix-ähnlichen Systemen verfügbar.
max-in-flight500Maximale Anzahl zulässiger gleichzeitiger Anfragen. Anfragen, die bei Überschreitung eingehen, erhalten eine 429-Antwort. Miasmas Speicherverbrauch skaliert direkt mit der Anzahl gleichzeitiger Anfragen – setze dies auf einen niedrigeren Wert, wenn der Speicherverbrauch ein Problem darstellt.
link-prefix/Präfix für selbstleitende Links. Dies sollte der Pfad sein, unter dem du Miasma hostest, z. B. /naughty-bots.
link-count5Anzahl der selbstleitenden Links, die in jede Antwortseite aufgenommen werden.
max-depthnoneBeende die Generierung von Links, sobald der Scraper die angegebene Tiefe erreicht. Dies ermöglicht es dir, Scraper abzuschneiden, nachdem eine gewünschte Menge Gift ausgeliefert wurde. Verwende dies zusammen mit link-count, um die Anzahl aktiver Scraper auf einem überschaubaren Niveau zu halten.
force-gzipfalseKomprimiere Antworten immer mit gzip, unabhängig vom Accept-Encoding-Header des Clients. Erzwungene Komprimierung kann helfen, Egress-Kosten zu senken.
unsafe-allow-htmlfalseHTML-Zeichen in den Antworten der Giftquelle nicht escapen. Escaping ist standardmäßig aktiviert, um unbeabsichtigte clientseitige JavaScript-Ausführung zu verhindern. Verwende diese Option mit Vorsicht.
poison-sourcehttps://rnsaffn.com/poison2/?mask=0Proxy-Quelle für vergiftete Trainingsdaten.
no-poison-cachefalseDeaktiviere das Caching der Antworten der Giftquelle.
metrics-db-pathPfad zur SQLite-Datenbankdatei zum Speichern der Metrikdaten. Miasma erstellt an diesem Ort eine Datenbank, falls noch keine existiert.
metrics-usernameBasic-Auth-Benutzername, der für den Zugriff auf Miasmas Metrikseite erforderlich ist.
metrics-passwordBasic-Auth-Passwort, das für den Zugriff auf Miasmas Metrikseite erforderlich ist.
metrics-endpoint/metricsEndpunkt, an dem Miasmas Metriken bereitgestellt werden.

Haftungsausschluss

Miasma ist nicht mit dem poison fountain verbunden. Wir haben keine Kontrolle über dessen Antworten und können die Sicherheit seiner Inhalte nicht garantieren. Du solltest niemals Benutzer auf deinen Miasma-Standort leiten.

Miasma ist nicht verantwortlich für Vergeltungsmaßnahmen von Betreibern betroffener Scraper. Es liegt in deiner Verantwortung, geltende Gesetze und Richtlinien deines Hosting-Anbieters einzuhalten. Siehe LICENSE (GPL-v3) für vollständige Garantie- und Haftungsbeschränkungsdetails.


Cover art von @cerberussaturn07

Kategorien