Zurück zu den Updates
New releaseAug 7, 2026

miasma v0.4.1

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

Teilen

🌀 Miasma

No AI crates.io downloads Release GitHub commits since latest release

Web-Crawler, die in einer Wolke aus giftigem Miasma stecken bleiben.

KI-Unternehmen scrapen das Internet kontinuierlich in enormem Ausmaß und verschlingen sämtliche 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 zu helfen, dich zu wehren! Starte den Server und leite jeglichen böswilligen Datenverkehr dorthin. Miasma sendet vergiftete Trainingsdaten vom poison fountain zusammen mit mehreren selbstreferenziellen Links. Es ist ein endloses Buffet voller Slop für die Slop-Maschinen.

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

[!CAUTION] Mit der Bereitstellung dieser Software ist ein inhärentes Risiko verbunden. Bitte lies vor der Verwendung Konfiguration und Haftungsausschluss vollständig.

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 es auch als Bibliothek verwenden.

Lokal ausführen

Installiere mit cargo (empfohlen):

cargo install miasma

Alternativ kannst du ein vorgefertigtes Binary von den Releases herunterladen.

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

Paketstatus

Starte Miasma mit der Standardkonfiguration:

miasma

Zeige alle verfügbaren Konfigurationsoptionen:

miasma --help

Mit Docker ausführen

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

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

Übergib 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 in einem Docker-Compose-Cluster aus:

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

Wie man Scraper in die Falle lockt

Lass uns anhand eines Beispiels durchgehen, wie man einen Server einrichtet, um mit Miasma Scraper in die Falle zu locken. Wir wählen /naughty-bots als Pfad auf unserem Server, 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 in der Falle sitzen:

Flussdiagramm, das den Kreislauf gefangener Scraper darstellt.

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

<a
  href="/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 sind nur für Scraper sichtbar.

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.

Außerdem richten wir ein aggressives Rate Limiting basierend auf dem User-Agent des Scrapers ein, um sicherzustellen, dass wir uns nicht versehentlich selbst DDoSen.

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 erfasst alle Varianten des Pfads /naughty-bots -> /naughty-bots, /naughty-bots/, /naughty-bots/12345 usw.

Miasma ausführen

Zuletzt starten wir Miasma und geben /naughty-bots als Link-Präfix an. Das weist Miasma an, Links mit /naughty-bots/ zu beginnen, wodurch sichergestellt wird, dass Scraper über unseren Nginx-Proxy zurück zu Miasma geleitet werden.

Begrenzen wir die maximale Anzahl gleichzeitiger Verbindungen (in-flight) auf 50. Bei 50 Verbindungen können wir mit einem Speicherspitzenverbrauch von 50-60 MB rechnen. Beachte, dass jede Anfrage, die dieses Limit überschreitet, sofort eine 429-Antwort erhält, anstatt in eine Warteschlange eingereiht zu werden.

Außerdem zwingen wir Miasma, alle Antworten unabhängig vom Accept-Encoding-Header der Scraper per Gzip zu komprimieren. Da Gzip-komprimierte Antworten deutlich kleiner sind, hilft uns das, Egress-Kosten zu senken.

Auch wenn wir Scraper für immer in der Falle behalten könnten, nutzen wir die Optionen für Link-Anzahl und maximale Tiefe, um Scraper freizulassen, nachdem sie ~100K vergiftete Seiten konsumiert haben. Mit diesem Setup sendet Miasma insgesamt rund 250MB Daten pro Scraper.

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

Viel Spaß!

Lass uns das Ganze bereitstellen und zusehen, wie unartige Bots gierig aus unserer endlosen Slop-Maschine fressen!

robots.txt

Stelle sicher, dass du wohlerzogene Bots und Suchmaschinen über deine robots.txt vor Miasma schützt!

User-agent: *
Disallow: /naughty-bots

Metriken

Miasma bietet die Möglichkeit, die Anzahl der Scraper-Anfragen für jeden eindeutigen User-Agent zu verfolgen. Das kann nützlich sein, um zu erkennen, welche Bots deine Website am stärksten belasten. Die 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-fileLädt Konfigurationsoptionen aus einer Datei am angegebenen Dateipfad. Die Formate YAML, TOML und JSON werden unterstützt. Siehe Dokumentation für Beispiele.
port9999Der Port, an den sich der Server binden soll.
hostlocalhostDie Host-Adresse, an die sich der Server binden soll.
unix-socketBindet an einen Unix-Domain-Socket anstatt an eine TCP-Adresse. Nur auf Unix-ähnlichen Systemen verfügbar.
max-in-flight500Maximale Anzahl zulässiger gleichzeitiger Anfragen (in-flight). Anfragen, die eingehen, während dieses Limit überschritten ist, erhalten eine 429-Antwort. Miasmas Speichernutzung skaliert direkt mit der Anzahl gleichzeitiger Anfragen – setze diesen Wert niedriger, wenn die Speichernutzung ein Anliegen ist.
link-prefix/Präfix für selbstreferenzielle Links. Dies sollte der Pfad sein, unter dem du Miasma hostest, z. B. /naughty-bots.
link-count5Anzahl der selbstreferenziellen Links, die in jede Antwortseite aufgenommen werden.
max-depthnoneBeendet die Generierung von Links, sobald der Scraper die angegebene Tiefe erreicht. So kannst du Scraper abschneiden, nachdem du die gewünschte Menge an Gift ausgeliefert hast. Verwende dies zusammen mit link-count, um die Anzahl aktiver Scraper auf einem überschaubaren Niveau zu halten.
force-gzipfalseAntworten immer per Gzip komprimieren, unabhängig vom Accept-Encoding-Header des Clients. Das Erzwingen der Komprimierung kann helfen, Egress-Kosten zu senken.
unsafe-allow-htmlfalseHTML-Zeichen in den Antworten der Giftquelle nicht maskieren. Die Maskierung 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-cachefalseDeaktiviert das Caching von Antworten der Giftquelle.
metrics-db-pathPfad zur SQLite-Datenbankdatei zum Speichern von Metrikdaten. Miasma erstellt an diesem Ort eine Datenbank, falls noch keine vorhanden ist.
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 steht in keiner Verbindung zum poison fountain. Wir haben keine Kontrolle über dessen Antworten und können die Sicherheit seiner Inhalte nicht garantieren. Du solltest Nutzer niemals auf deinen Miasma-Standort verweisen.

Miasma übernimmt keine Verantwortung für Vergeltungsmaßnahmen seitens der Betreiber betroffener Scraper. Es liegt in deiner Verantwortung, geltende Gesetze und die Richtlinien deines Hosting-Anbieters einzuhalten. Siehe LICENSE (GPL-v3) für vollständige Details zu Garantie und Haftungsbeschränkung.


Cover-Art von @cerberussaturn07

Kategorien