Voltar às atualizações
New releaseJul 25, 2026

miasma v0.4.0

Prenda raspadores web de IA em um poço de veneno sem fim.

Compartilhar

🌀 Miasma

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

Web crawlers getting stuck in a cloud of poison miasma.

As empresas de IA raspam continuamente a internet numa escala enorme, engolindo todos os seus conteúdos para os usar como dados de treino para os seus próximos modelos. Se tem um site público, eles já estão a roubar o seu trabalho.

O Miasma está aqui para o ajudar a ripostar! Inicie o servidor e direcione qualquer tráfego malicioso para ele. O Miasma enviará dados de treino envenenados da fonte de veneno juntamente com múltiplos links auto-referenciais. É um buffet infinito de porcaria para as máquinas de porcaria.

O Miasma é extremamente rápido e tem um consumo de memória mínimo - não devia ter de desperdiçar recursos computacionais a repelir as sanguessugas da internet.

[!CAUTION] Existe um risco inerente na implementação deste software. Por favor, leia integralmente a configuração e o aviso legal antes de utilizar.

Utilização

Pode executar o Miasma localmente, ou com a imagem docker oficial.

Se pretender incorporar o Miasma num servidor Rust existente, também pode utilizar o Miasma como biblioteca.

Executar Localmente

Instale com cargo (recomendado):

cargo install miasma

Em alternativa, descarregue um binário pré-compilado das releases.

Também estão disponíveis pacotes mantidos pela comunidade para vários gestores de pacotes:

Packaging status

Inicie o Miasma com a configuração predefinida:

miasma

Veja todas as opções de configuração disponíveis:

miasma --help

Executar com Docker

Execute o Miasma utilizando a imagem docker oficial:

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

Passe os mesmos flags de configuração que usaria localmente:

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

Ou, execute dentro de um cluster docker compose:

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

Como Apanhar Scrapers

Vamos percorrer um exemplo de configuração de um servidor para apanhar scrapers com o Miasma. Vamos escolher /naughty-bots como o caminho do nosso servidor para direcionar o tráfego dos scrapers. Vamos usar o Nginx como proxy reverso do nosso servidor, mas o mesmo resultado pode ser alcançado com muitas configurações diferentes.

Quando terminarmos, os scrapers ficarão presos assim:

Flow chart depicting cycle of trapped scrapers.

Dentro do nosso site, incluiremos alguns links escondidos que levam a /naughty-bots.

<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>

Os atributos style="display: none;", aria-hidden="true" e tabindex="-1" garantem que os links são totalmente invisíveis para visitantes humanos e serão ignorados por leitores de ecrã e navegação por teclado. Serão visíveis apenas para scrapers.

Configurar o nosso Proxy Nginx

Como os nossos links escondidos apontam para /naughty-bots/, vamos configurar este caminho para encaminhar pedidos para o Miasma. Vamos assumir que estamos a executar o Miasma na porta 9855.

Também vamos configurar limitação de taxa agressiva com base no user agent do scraper para ajudar a garantir que não nos fazemos DDoS a nós próprios acidentalmente.

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 configuração irá apanhar todas as variações do caminho /naughty-bots -> /naughty-bots, /naughty-bots/, /naughty-bots/12345, etc.

Executar o Miasma

Por último, vamos iniciar o Miasma e especificar /naughty-bots como o prefixo dos links. Isto instrui o Miasma a iniciar os links com /naughty-bots/, o que garante que os scrapers são devidamente encaminhados através do nosso proxy Nginx de volta para o Miasma.

Vamos limitar o número máximo de ligações em curso a 50. Com 50 ligações, podemos esperar um pico de utilização de memória de 50-60 MB. Note que quaisquer pedidos que excedam este limite receberão imediatamente uma resposta 429 em vez de serem adicionados a uma fila.

Também vamos forçar o Miasma a comprimir com gzip todas as respostas, independentemente do cabeçalho Accept-Encoding dos scrapers. Como as respostas comprimidas com gzip são significativamente mais pequenas, isto ajudará a reduzir os custos de tráfego de saída.

Embora pudéssemos manter os scrapers presos para sempre, vamos usar as opções de contagem de links e profundidade máxima para deixar os scrapers ir após consumirem ~100K páginas envenenadas. Com esta configuração, o Miasma enviará cerca de 250MB de dados totais por scraper.

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

Divirta-se!

Vamos implementar e observar enquanto os bots mal comportados comem avidamente da nossa máquina infinita de porcaria!

robots.txt

Certifique-se de que protege os bots bem comportados e os motores de busca do Miasma através do seu robots.txt!

User-agent: *
Disallow: /naughty-bots

Métricas

O Miasma oferece a capacidade de rastrear contagens de pedidos de scrapers por User-Agent único. Isto pode ser útil para identificar quais os bots que estão a atingir o seu site com mais intensidade. As métricas são escritas num ficheiro de base de dados SQLite local e podem ser visualizadas num endpoint à sua escolha.

Configuração

Categorias