Ofuscação VM
A ofuscação VM transforma suas funções JavaScript em bytecode personalizado que roda em uma máquina virtual embutida na saída, de modo que a lógica protegida deixa de ser entregue como JavaScript legível.
A proteção VM se aplica às funções elegíveis. No modo root, vmWrapTopLevelInitializers também pode envolver inicializadores elegíveis para virtualização; as predefinições VM atuais a ativam. Revise avisos de cobertura como VMNoFunctionsToVirtualize e use o modo comment para selecionar explicitamente as funções sensíveis.
A ofuscação aumenta o custo da engenharia reversa sem torná-la impossível, então mantenha segredos e decisões de segurança definitivas no servidor - veja em Boas práticas o que a ofuscação pode e não pode garantir.
Precisa de ajuda? Se a ofuscação VM se comportar de forma inesperada, veja em Diagnosticando erros de execução da VM como isolar o problema e enviar um relatório de bug.
Nesta seção
Compatibilidade de execução
Adapte o build ao lugar onde ele roda: a opção Target, as defesas de execução e o que o pipeline de build precisa preservar.
Como a VM transforma o código
O que a VM mantém visível e o que ela esconde, e como proteger os nomes das funções.
Selecionando funções específicas
Aplique a ofuscação VM apenas às funções sensíveis para obter o melhor desempenho.
Register-Based VM
Mude a VM para um modelo de execução baseado em registradores: execução mais rápida, ao custo de um bundle um pouco maior.
Async Executor
Execute a VM de forma assíncrona para que a chave de descriptografia do bytecode seja obtida em tempo de execução, em vez de ser enviada no bundle.
Compatibilidade com o modo estrito
Declare o modo estrito para que a VM compile o bytecode correto.
Comportamento do eval direto
Por que o eval() direto desativa a ofuscação VM e como evitar essa armadilha.
VM Self Defending
Detecção de adulteração, verificações de integridade do código e proteção contra hooks para o runtime da VM.
VM Debug Protection
Medidas antidepuração para código protegido por VM.
VM Domain Lock
Restrinja o código VM ofuscado a domínios e subdomínios específicos.
Browser Environment
Declare como seu build de produção é servido para que o código protegido possa vincular a ele sua integridade.
