Pular para o conteúdo
fg
Voltar ao Journal
·

Ofuscação de JavaScript

Proteja seu código JS contra engenharia reversa. Passo a passo para ofuscar uma aplicação Angular com webpack-obfuscator.

Ofuscação de JavaScript transforma seu código legível em algo que um ser humano não consegue entender, mas o navegador executa do mesmo jeito. Não é segurança de verdade — se alguém quiser muito reverter, consegue — mas já barra 99% dos curiosos.

Aqui vai o passo a passo pra configurar num projeto Angular.

1 — Instalar os pacotes

npm install --save-dev javascript-obfuscator webpack-obfuscator

2 — Adicionar o custom webpack builder

Precisa de um builder que integre o Webpack no Angular. A versão do builder precisa bater com a do Angular:

Angular 17:

npm install --save-dev @angular-builders/custom-webpack@17

Angular 18+:

npm install --save-dev @angular-builders/custom-webpack

3 — Configurar o Webpack

Cria webpack.config.js na raiz:

var WebpackObfuscator = require('webpack-obfuscator');

module.exports = {
  plugins: [
    new WebpackObfuscator({
      debugProtection: true,
    }, ['vendor.js'])
  ]
}

O segundo argumento (['vendor.js']) são os arquivos que você NÃO quer ofuscar. Útil se alguma lib externa quebrar com a ofuscação.

4 — Atualizar o angular.json

Troca o builder padrão pelo custom:

{
  ...
  "architect": {
    "build": {
      "builder": "@angular-builders/custom-webpack:browser",
      "options": {
        "customWebpackConfig": {
          "path": "./webpack.config.js",
          "mergeStrategies": {
            "module.rules": "prepend"
          }
        },
        "outputPath": "dist",
        ...
      }
    }
  }
  ...
}

Pronto

Roda npm run build. Os arquivos na pasta dist vão sair ofuscados. Publica sem medo de alguém copiar seu código e entender de primeira o que ele faz.

Lembrando: ofuscação não substitui autenticação, CORS bem configurado ou validação no backend. É uma camada extra, não a única.