
miasma v0.4.1
Locken Sie KI-Web-Scraper in eine endlose Giftgrube.
🌀 Miasma
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:
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:
Versteckte Links einbetten
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.
| Option | Standard | Beschreibung |
|---|---|---|
config-file | Lädt Konfigurationsoptionen aus einer Datei am angegebenen Dateipfad. Die Formate YAML, TOML und JSON werden unterstützt. Siehe Dokumentation für Beispiele. | |
port | 9999 | Der Port, an den sich der Server binden soll. |
host | localhost | Die Host-Adresse, an die sich der Server binden soll. |
unix-socket | Bindet an einen Unix-Domain-Socket anstatt an eine TCP-Adresse. Nur auf Unix-ähnlichen Systemen verfügbar. | |
max-in-flight | 500 | Maximale 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-count | 5 | Anzahl der selbstreferenziellen Links, die in jede Antwortseite aufgenommen werden. |
max-depth | none | Beendet 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-gzip | false | Antworten immer per Gzip komprimieren, unabhängig vom Accept-Encoding-Header des Clients. Das Erzwingen der Komprimierung kann helfen, Egress-Kosten zu senken. |
unsafe-allow-html | false | HTML-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-source | https://rnsaffn.com/poison2/?mask=0 | Proxy-Quelle für vergiftete Trainingsdaten. |
no-poison-cache | false | Deaktiviert das Caching von Antworten der Giftquelle. |
metrics-db-path | Pfad zur SQLite-Datenbankdatei zum Speichern von Metrikdaten. Miasma erstellt an diesem Ort eine Datenbank, falls noch keine vorhanden ist. | |
metrics-username | Basic-Auth-Benutzername, der für den Zugriff auf Miasmas Metrikseite erforderlich ist. | |
metrics-password | Basic-Auth-Passwort, das für den Zugriff auf Miasmas Metrikseite erforderlich ist. | |
metrics-endpoint | /metrics | Endpunkt, 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