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
⬆ À 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:
- Ofuscar o texto no HTML — substituir caracteres latinos por equivalentes homoglíficos de outros alfabetos.
- Criar uma web font — um ficheiro .woff2 onde esses code points "estrangeiros" são redesenhados para se parecerem com as letras latinas originais.
- 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.
Comentários (0)
Nenhum comentário ainda. Seja o primeiro!
Deixar comentário