Documentação
/
Receitas
/

Boas práticas

Boas práticas

Como aplicar a ofuscação de forma eficaz: o que proteger, o que deixar como está e o que a ofuscação não pode fazer por você.

Recomendações

  • Ofusque apenas o seu próprio código.

    Não aplique a ofuscação VM a scripts de terceiros, bibliotecas ou polyfills. Eles já vêm minificados, e a ofuscação só vai deixá-los mais lentos.

  • Use o modo comment para uma proteção cirúrgica.

    Defina vmTargetFunctionsMode como 'comment' e marque apenas as funções sensíveis com /* javascript-obfuscator:vm */, em vez de proteger tudo. Veja Selecionando funções específicas.

  • Teste a fundo depois da ofuscação.

    Sempre teste o código ofuscado no seu ambiente de destino. Algumas opções podem quebrar o código de formas sutis. As defesas de execução também reagem à automação de testes e aos depuradores; veja Testes e CI.

  • Exclua os caminhos frequentes da ofuscação VM.

    Use vmExcludeFunctions para loops de animação, renderização em tempo real ou código chamado com frequência. Ela só corresponde a nomes de funções de nível raiz (com Async Executor, às funções async mais externas); para manter código frequente aninhado fora da VM, use o modo comment e marque apenas as funções que precisam de proteção.

Aviso crítico de segurança

Nunca armazene chaves de API, segredos ou credenciais em código JavaScript de frontend, nem mesmo com ofuscação.

A ofuscação aumenta o esforço necessário para entender e modificar o código, mas não é criptografia e não garante que a engenharia reversa seja impossível. O runtime continua observável em um ambiente controlado pelo atacante, então um atacante determinado sempre consegue extrair dados de código que roda no cliente. Mantenha segredos e decisões de segurança definitivas no servidor.

Na prática:

  • Armazenar segredos no seu servidor de backend
  • Usar variáveis de ambiente no servidor
  • Encaminhar as chamadas de API pelo seu backend para esconder as chaves
  • Usar tokens de curta duração emitidos pelo seu servidor

O que você deve proteger?

A ofuscação VM é ideal para:

  • Algoritmos proprietários e lógica de negócio
  • Código de validação de licença (verificações no cliente)
  • Verificações antiadulteração e de integridade
  • Lógica de jogos e mecanismos anticheat
  • Implementações de recursos premium
  • Lógica de cálculo de preços

Build e publicação

Ofusque a saída compilada e empacotada como a última etapa do build; veja em Compatibilidade de execução o pipeline de build. Meça o custo da predefinição escolhida no seu próprio código, como descrito em Escolhendo predefinições. Rode os testes funcionais em um build de testes e depois valide o artefato de produção separado que você realmente publica, como descrito em Testes e CI.