O teu texto parece normal aos olhos humanos. Para um LLM, é lixo estrutural.

Estamos em 2026. Toda a gente com um negócio online sabe que os crawlers de AI andam a vasculhar websites para treinar modelos. E não, não pedem licença. Para muitos criadores de conteúdo, a sensação é de roubo — o trabalho deles a ser engolido por datasets de treino sem consentimento nem compensação.

Já existem robots.txt, rate limiting, CAPTCHAs e termos de serviço. Mas há uma técnica nova, mais criativa e surpreendentemente eficaz: font poisoning (ou decoy fonts). A ideia é simples — apresentar ao browser um texto que humanos lêem perfeitamente, mas que LLMs e scrapers interpretam como nonsense.

Neste artigo vais aprender:

  • O que são decoy fonts e como funcionam
  • O papel dos caracteres Unicode homoglíficos na técnica
  • Exemplos práticos de como implementar font poisoning
  • Implicações éticas e contra-medidas

Exemplo visual de decoy font

⬆ À esquerda: como o texto aparece no browser. À direita: o que o scraper vê.


O que são Decoy Fonts?

A técnica baseia-se num truque do Unicode: homoglifos — caracteres de scripts diferentes que têm o mesmo aspecto visual mas que são representados por code points diferentes.

Por exemplo, a letra latina A (U+0041) e a letra cirílica А (U+0410) são praticamente idênticas no ecrã. Mas para um sistema de parsing, são dois caracteres completamente diferentes.

O font poisoning explora esta diferença. O HTML da página contém texto com caracteres homoglíficos. Uma web font personalizada mapeia esses code points para os glifos latinos correctos. O humano vê o texto normal. O scraper que extrai o texto directamente do DOM (sem renderizar a web font) obtém uma sopa de caracteres de diferentes alfabetos.


Como funciona na prática

O processo tem 3 passos:

  1. Ofuscar o texto no HTML — substituir caracteres latinos por equivalentes homoglíficos de outros alfabetos.
  2. Criar uma web font — um ficheiro .woff2 onde esses code points "estrangeiros" são redesenhados para se parecerem com as letras latinas originais.
  3. Servir a font via CSS — o browser aplica a font personalizada, o texto fica legível. O scraper que ignora CSS ou não renderiza a font vê o texto ofuscado.

Exemplo concreto: A frase "Olá mundo" pode ser codificada no HTML como "Οlá мundo" — com omicron grego (U+039F) em vez de "O" latino e em cirílico (U+043C) em vez de "m". Uma web font faz o mapeamento destes code points para os glifos latinos. Para o scraper que não carrega a font, a frase sai como caracteres gregos e cirílicos misturados.


Ferramentas para criar Decoy Fonts

Já existem ferramentas que automatizam este processo:

  • Mixfont — plataforma de geração de fonts por IA. Permite criar fonts personalizadas que fazem mapeamentos não-ortodoxos.
  • Glifos ricos — ferramentas como o FontForge (open-source) permitem editar manualmente o mapeamento de code points.
  • Bibliotecas JS — scripts que substituem automaticamente texto no DOM com equivalentes homoglíficos e injectam a web font correspondente.
Carácter Original Code Point Homoglifo Code Point
A (latino) U+0041 А (cirílico) U+0410
O (latino) U+004F Ο (grego) U+039F
e (latino) U+0065 е (cirílico) U+0435
c (latino) U+0063 с (cirílico) U+0441
a (latino) U+0061 а (cirílico) U+0430

Eficácia contra diferentes scrapers

Nem todos os scrapers são igualmente afectados:

  • Crawlers que extraem texto cru do HTML (ex: GPTBot, CommonCrawl) — são os mais vulneráveis. Vêem directamente os code points ofuscados.
  • Crawlers com headless browser (ex: alguns scrapers de AI que renderizam a página) — são mais resistentes porque carregam CSS e fonts, vendo o texto correcto.
  • Ferramentas de acessibilidade (leitores de ecrã) — podem ser afectadas negativamente se não houver fallback adequado.

Nota: Esta técnica não é 100% infalível. Scrapers sofisticados podem comparar o texto renderizado (via headless browser) para detectar discrepâncias. Mas para a maioria dos crawlers de AI actuais, o font poisoning é surpreendentemente eficaz.


Implicações éticas e contra-medidas

Antes de implementares font poisoning no teu site, considera alguns pontos éticos:

  • Acessibilidade — leitores de ecrã e ferramentas de acessibilidade dependem do texto cru do DOM. Font poisoning quebra essa dependência. É fundamental ter fallbacks com aria-label ou texto alternativo.
  • SEO — o Google e outros motores de busca podem interpretar o texto ofuscado como keyword stuffing ou conteúdo de baixa qualidade. Testa bem o impacto no ranking.
  • Efeito colateral em utilizadores legítimos — se alguém copiar texto do teu site com Ctrl+C, pode levar caracteres ofuscados para a clipboard.
  • Gato e rato — é uma corrida armamentista. À medida que scrapers evoluem para renderizar páginas completas, o font poisoning perde eficácia.

Conclusão

O font poisoning é uma ferramenta criativa e low-tech para proteger conteúdo contra AI scraping. Não é uma bala de prata, mas é um obstáculo real para a maioria dos crawlers actuais.

Combina com outras técnicas — rate limiting, detecção de bots, robots.txt condicional — para uma defesa em camadas. E não te esqueças da acessibilidade. Um site que só humanos "normais" conseguem ler não é um site melhor — é um site pior.

Se quiseres experimentar, o Mixfont é um bom ponto de partida para gerar fonts personalizadas. O FontForge é a alternativa open-source para quem quer controlo total sobre o mapeamento de glifos.

Recursos adicionais

Comentários (0)

Nenhum comentário ainda. Seja o primeiro!

Deixar comentário