Volver a actualizaciones
Nuevo releaseJul 25, 2026

miasma v0.4.0

Atrapa a los scrapers web de IA en un pozo de veneno sin fin.

Compartir

🌀 Miasma

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

Rastreadores web quedándose atrapados en una nube de miasma venenoso.

Las empresas de IA no dejan de rastrear Internet a una escala enorme, engullendo todo su contenido para usarlo como datos de entrenamiento para sus próximos modelos. Si tienes un sitio web público, ya están robando tu trabajo.

Miasma está aquí para ayudarte a contraatacar. Levanta el servidor y apunta cualquier tráfico malicioso hacia él. Miasma enviará datos de entrenamiento envenenados desde la fuente de veneno junto con múltiples enlaces auto-referenciales. Es un buffet interminable de bazofia para las máquinas de bazofia.

Miasma es rapidísimo y tiene una huella de memoria mínima: no deberías tener que malgastar recursos de computación para defenderte de las sanguijuelas de Internet.

[!CAUTION] Existe un riesgo inherente al desplegar este software. Por favor, lee por completo configuración y descargo de responsabilidad antes de usarlo.

Uso

Puedes ejecutar Miasma localmente o con la imagen docker oficial.

Si deseas incorporar Miasma a un servidor Rust existente, también puedes usar Miasma como una librería.

Ejecutar Localmente

Instala con cargo (recomendado):

cargo install miasma

Alternativamente, descarga un binario precompilado desde releases.

También hay paquetes mantenidos por la comunidad disponibles para una variedad de gestores de paquetes:

Estado del empaquetado

Inicia Miasma con la configuración predeterminada:

miasma

Consulta todas las opciones de configuración disponibles:

miasma --help

Ejecutar con Docker

Ejecuta Miasma usando la imagen docker oficial:

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

Pasa las mismas opciones de configuración que usarías localmente:

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

O ejecútalo dentro de un clúster de docker compose:

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

Cómo Atrapar Rastreadores

Veamos un ejemplo de configuración de un servidor para atrapar rastreadores con Miasma. Elegiremos /naughty-bots como la ruta de nuestro servidor para dirigir el tráfico de los rastreadores. Usaremos Nginx como proxy inverso de nuestro servidor, pero se puede lograr el mismo resultado con muchas configuraciones diferentes.

Cuando terminemos, los rastreadores quedarán atrapados así:

Diagrama de flujo que representa el ciclo de rastreadores atrapados.

Insertar Enlaces Ocultos

Dentro de nuestro sitio, incluiremos algunos enlaces ocultos que apunten a /naughty-bots.

<a
  href="/naughty-bots/"
  style="display: none;"
  aria-hidden="true"
  tabindex="-1"
>
  Amazing high quality data here!
</a>

Los atributos style="display: none;", aria-hidden="true" y tabindex="-1" aseguran que los enlaces sean totalmente invisibles para los visitantes humanos y que los lectores de pantalla y la navegación con teclado los ignoren. Solo serán visibles únicamente para los rastreadores.

Configurar nuestro Proxy Nginx

Como nuestros enlaces ocultos apuntan a /naughty-bots/, configuraremos esta ruta para que envíe las peticiones por proxy a Miasma. Supongamos que estamos ejecutando Miasma en el puerto 9855.

También configuraremos una limitación de velocidad agresiva basada en el user agent del rastreador para ayudar a asegurarnos de no provocarnos un DDoS a nosotros mismos accidentalmente.

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/;
    }
  }
}

Esta configuración capturará todas las variaciones de la ruta /naughty-bots -> /naughty-bots, /naughty-bots/, /naughty-bots/12345, etc.

Ejecutar Miasma

Por último, iniciaremos Miasma y especificaremos /naughty-bots como prefijo de enlaces. Esto le indica a Miasma que comience los enlaces con /naughty-bots/, lo que asegura que los rastreadores sean enrutados correctamente a través de nuestro proxy Nginx de vuelta a Miasma.

Limitemos el número máximo de conexiones en vuelo a 50. Con 50 conexiones, podemos esperar un uso máximo de memoria de 50-60 MB. Ten en cuenta que cualquier petición que supere este límite recibirá inmediatamente una respuesta 429 en lugar de añadirse a una cola.

También forzaremos a Miasma a comprimir todas las respuestas con gzip independientemente de la cabecera Accept-Encoding de los rastreadores. Dado que las respuestas comprimidas con gzip son significativamente más pequeñas, esto nos ayudará a reducir los costes de salida de datos.

Aunque podríamos mantener a los rastreadores atrapados para siempre, usaremos las opciones de número de enlaces y profundidad máxima para dejar ir a los rastreadores después de que consuman ~100K páginas envenenadas. Con esta configuración, Miasma enviará alrededor de 250MB de datos totales por rastreador.

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

¡A Disfrutar!

¡Despleguemos y observemos cómo los bots mal educados devoran con avidez nuestra interminable máquina de bazofia!

robots.txt

Asegúrate de proteger a los bots y motores de búsqueda que se portan bien de Miasma mediante tu robots.txt!

User-agent: *
Disallow: /naughty-bots

Métricas

Miasma ofrece la posibilidad de rastrear el número de peticiones de los rastreadores por User-Agent único. Esto puede ser útil para identificar qué bots están golpeando tu sitio con más intensidad. Las métricas se escriben en un archivo de base de datos SQLite local y se pueden ver en un endpoint de tu elección.

Configuración

Miasma se puede configurar mediante opciones de CLI o un archivo de configuración.

OpciónValor por defectoDescripción
config-fileCarga las opciones de configuración desde un archivo en la ruta especificada. Se admiten formatos YAML, TOML y JSON. Consulta docs para ver ejemplos.
port9999El puerto al que debe enlazarse el servidor.
hostlocalhostLa dirección de host a la que debe enlazarse el servidor.
unix-socketEnlazar a un socket de dominio Unix en lugar de una dirección TCP. Solo disponible en sistemas tipo Unix.
max-in-flight500Número máximo de peticiones en vuelo permitidas. Las peticiones recibidas cuando se supera el límite en vuelo recibirán una respuesta 429. El uso de memoria de Miasma escala directamente con el número de peticiones en vuelo: establece un valor más bajo si el uso de memoria es una preocupación.
link-prefix/Prefijo para los enlaces auto-directores. Esta debería ser la ruta donde alojas Miasma, p. ej. /naughty-bots.
link-count5Número de enlaces auto-directores a incluir en cada página de respuesta.
max-depthnoneDeja de generar enlaces una vez que el rastreador alcanza la profundidad especificada. Esto te permite cortar a los rastreadores después de servir una cantidad deseada de veneno. Úsalo junto con link-count para mantener el número de rastreadores activos en un nivel manejable.
force-gzipfalseComprime siempre las respuestas con gzip independientemente de la cabecera Accept-Encoding del cliente. Forzar la compresión puede ayudar a reducir los costes de salida de datos.
unsafe-allow-htmlfalseNo escapar los caracteres HTML en las respuestas de la fuente de veneno. El escape está habilitado por defecto para evitar la ejecución no intencionada de JavaScript en el lado del cliente. Usa esta opción con cuidado.
poison-sourcehttps://rnsaffn.com/poison2/?mask=0Fuente proxy para los datos de entrenamiento envenenados.
no-poison-cachefalseDeshabilitar el almacenamiento en caché de las respuestas de la fuente de veneno.
metrics-db-pathRuta al archivo de base de datos SQLite para almacenar los datos de métricas. Miasma creará una base de datos en esta ubicación si aún no existe.
metrics-usernameNombre de usuario de autenticación básica requerido para acceder a la página de métricas de Miasma.
metrics-passwordContraseña de autenticación básica requerida para acceder a la página de métricas de Miasma.
metrics-endpoint/metricsEndpoint en el que se servirán las métricas de Miasma.

Descargo de Responsabilidad

Miasma no está afiliado con la fuente de veneno. No tenemos control sobre sus respuestas y no podemos garantizar la seguridad de su contenido. Nunca debes dirigir a los usuarios hacia tu ubicación de Miasma.

Miasma no es responsable de ninguna represalia por parte de los operadores de los rastreadores afectados. Es tu responsabilidad cumplir con las leyes aplicables y las políticas de tu proveedor de alojamiento. Consulta LICENSE (GPL-v3) para ver la garantía completa y la limitación de responsabilidad.


Arte de portada por @cerberussaturn07

Categorías