Voltar às atualizações
New releaseAug 19, 2026

miasma v0.4.2

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

Compartilhar

🌀 Miasma

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

Rastreadores web ficando presos em uma nuvem de miasma venenoso.

Empresas de IA continuamente raspam a internet em uma escala enorme, engolindo todo o seu conteúdo para usar como dados de treinamento para seus próximos modelos. Se você tem um site público, eles já estão roubando o seu trabalho.

Miasma está aqui para ajudar você a revidar! Suba o servidor e aponte qualquer tráfego malicioso para ele. Miasma enviará dados de treinamento envenenados da fonte de veneno junto com vários links autorreferentes. É um banquete infinito de porcaria para as máquinas de porcaria.

Miasma é rápido como um raio e tem uma pegada de memória mínima - você não deveria precisar desperdiçar recursos de computação para se defender das sanguessugas da internet.

[!CAUTION] Há risco inerente na implantação deste software. Leia completamente configuração e aviso legal antes de usar.

Uso

Você pode executar o Miasma localmente ou com a imagem docker oficial.

Se você quiser incorporar o Miasma a um servidor Rust existente, também pode usar o Miasma como uma biblioteca.

Executando Localmente

Instale com cargo (recomendado):

cargo install miasma

Alternativamente, baixe um binário pré-compilado das releases.

Pacotes mantidos pela comunidade também estão disponíveis para vários gerenciadores de pacotes:

Packaging status

Inicie o Miasma com a configuração padrão:

miasma

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

miasma --help

Executando com Docker

Execute o Miasma usando a imagem docker oficial:

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

Passe as mesmas flags de configuração que você 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 Prender Scrapers

Vamos percorrer um exemplo de configuração de um servidor para prender scrapers com o Miasma. Escolheremos /naughty-bots como o caminho do nosso servidor para direcionar o tráfego de scrapers. Usaremos 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:

Fluxograma ilustrando o ciclo de scrapers presos.

Dentro do nosso site, incluiremos alguns links ocultos apontando para /naughty-bots.

<a
  href="/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 fiquem totalmente invisíveis para visitantes humanos e sejam ignorados por leitores de tela e navegação pelo teclado. Eles serão apenas visíveis para scrapers.

Configurando nosso Proxy Nginx

Como nossos links ocultos apontam para /naughty-bots/, configuraremos esse caminho para fazer proxy das requisições para o Miasma. Vamos supor que estamos executando o Miasma na porta 9855.

Também definiremos uma limitação de taxa agressiva com base no user agent do scraper para ajudar a garantir que não nos ataquemos com DDoS 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/;
    }
  }
}

Essa configuração capturará todas as variações do caminho /naughty-bots -> /naughty-bots, /naughty-bots/, /naughty-bots/12345, etc.

Execute o Miasma

Por fim, iniciaremos o Miasma e especificaremos /naughty-bots como o prefixo de link. Isso instrui o Miasma a iniciar links com /naughty-bots/, o que garante que os scrapers sejam roteados corretamente através do nosso proxy Nginx de volta ao Miasma.

Vamos limitar o número máximo de conexões em voo para 50. Com 50 conexões, podemos esperar um pico de uso de memória de 50-60 MB. Observe que qualquer requisição que exceda esse limite receberá imediatamente uma resposta 429 em vez de ser adicionada a uma fila.

Também forçaremos o Miasma a comprimir todas as respostas com gzip, independentemente do cabeçalho Accept-Encoding dos scrapers. Como as respostas compactadas com gzip são significativamente menores, isso nos ajudará a reduzir os custos de egresso.

Embora pudéssemos manter os scrapers presos para sempre, usaremos as opções de contagem de links e profundidade máxima para soltar os scrapers depois que eles consumirem ~100 mil páginas envenenadas. Com essa 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

Aproveite!

Vamos implantar e observar enquanto bots malcomportados comem avidamente da nossa máquina infinita de porcaria!

robots.txt

Certifique-se de proteger bots bem-comportados e mecanismos de busca do Miasma através do seu robots.txt!

User-agent: *
Disallow: /naughty-bots

Métricas

Miasma oferece a capacidade de rastrear contagens de requisições de scrapers por User-Agent único. Isso pode ser útil para identificar quais bots estão atingindo seu site com mais intensidade. As métricas são gravadas em um arquivo de banco de dados SQLite local e podem ser visualizadas em um endpoint de sua escolha.

Configuração

Miasma pode ser configurado por meio de flags de CLI ou de um arquivo de configuração.

OpçãoPadrãoDescrição
config-fileCarrega as opções de configuração de um arquivo no caminho especificado. Os formatos YAML, TOML e JSON são suportados. Consulte docs para exemplos.
port9999A porta à qual o servidor deve se vincular.
hostlocalhostO endereço de host ao qual o servidor deve se vincular.
unix-socketVincular a um socket de domínio Unix em vez de um endereço TCP. Disponível apenas em sistemas tipo Unix.
max-in-flight500Número máximo de requisições em voo permitidas. Requisições recebidas quando o limite em voo é excedido receberão uma resposta 429. _O uso de memória do Miasma aumenta diretamente com o número de requisições em voo - defina um valor menor se o uso de memória for uma preocupação.
link-prefix/Prefixo para links autorreferentes. Este deve ser o caminho onde você hospeda o Miasma, por exemplo, /naughty-bots.
link-count5Número de links autorreferentes a incluir em cada página de resposta.
max-depthnonePare de gerar links assim que o scraper atingir a profundidade especificada. Isso permite cortar os scrapers depois de servir uma quantidade desejada de veneno. Use isso em conjunto com link-count para manter o número de scrapers ativos em um nível gerenciável.
force-gzipfalseSempre compacte as respostas com gzip, independentemente do cabeçalho Accept-Encoding do cliente. Forçar a compactação pode ajudar a reduzir os custos de egresso.
unsafe-allow-htmlfalseNão escape caracteres HTML nas respostas da fonte de veneno. O escape é habilitado por padrão para evitar a execução não intencional de JavaScript no lado do cliente. Use esta opção com cuidado.
poison-sourcehttps://rnsaffn.com/poison2/?mask=0Fonte de proxy para dados de treinamento envenenados.
no-poison-cachefalseDesativa o cache de respostas da fonte de veneno.
metrics-db-pathCaminho para o arquivo de banco de dados SQLite para armazenar dados de métricas. O Miasma criará um banco de dados neste local se um já não existir.
metrics-usernameNome de usuário de autenticação básica necessário para acessar a página de métricas do Miasma.
metrics-passwordSenha de autenticação básica necessária para acessar a página de métricas do Miasma.
metrics-endpoint/metricsEndpoint no qual as métricas do Miasma serão servidas.

Miasma não é afiliado à fonte de veneno. Não temos controle sobre suas respostas e não podemos garantir a segurança de seu conteúdo. Você nunca deve direcionar usuários para a sua localização do Miasma.

Miasma não é responsável por qualquer retaliação dos operadores dos scrapers afetados. É sua responsabilidade cumprir as leis aplicáveis e as políticas do provedor de hospedagem. Consulte LICENSE (GPL-v3) para obter detalhes completos sobre garantia e limitação de responsabilidade.


Arte de capa por @cerberussaturn07

Categorias