
miasma v0.4.3
Locken Sie KI-Web-Scraper in eine endlose Giftgrube.
🌀 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:
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:
Versteckte Links einbetten
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.
| Option | Standard | Beschreibung |
|---|---|---|
config-file | Lade Konfigurationsoptionen aus einer Datei am angegebenen Dateipfad. Die Formate YAML, TOML und JSON werden unterstützt. Siehe docs für Beispiele. | |
port | 9999 | Der Port, an den der Server gebunden werden soll. |
host | localhost | Die Host-Adresse, an die der Server gebunden werden soll. |
unix-socket | Binde an einen Unix-Domain-Socket statt an eine TCP-Adresse. Nur auf Unix-ähnlichen Systemen verfügbar. | |
max-in-flight | 500 | Maximale 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-count | 5 | Anzahl der selbstleitenden Links, die in jede Antwortseite aufgenommen werden. |
max-depth | none | Beende 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-gzip | false | Komprimiere Antworten immer mit gzip, unabhängig vom Accept-Encoding-Header des Clients. Erzwungene Komprimierung kann helfen, Egress-Kosten zu senken. |
unsafe-allow-html | false | HTML-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-source | https://rnsaffn.com/poison2/?mask=0 | Proxy-Quelle für vergiftete Trainingsdaten. |
no-poison-cache | false | Deaktiviere das Caching der Antworten der Giftquelle. |
metrics-db-path | Pfad zur SQLite-Datenbankdatei zum Speichern der Metrikdaten. Miasma erstellt an diesem Ort eine Datenbank, falls noch keine existiert. | |
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 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