Documentazione
/
Ricette
/

Best practice

Best practice

Come applicare l'offuscamento in modo efficace: cosa proteggere, cosa lasciare invariato e cosa l'offuscamento non può fare per te.

Raccomandazioni

  • Offusca solo il tuo codice.

    Non offuscare con la VM script di terze parti, librerie o polyfill. Sono già minificati e l'offuscamento non farebbe che rallentarli.

  • Usa la modalità comment per una protezione mirata.

    Imposta vmTargetFunctionsMode su 'comment', poi contrassegna solo le funzioni sensibili con /* javascript-obfuscator:vm */ invece di proteggere tutto. Consulta Targeting di funzioni specifiche.

  • Testa accuratamente dopo l'offuscamento.

    Testa sempre il codice offuscato nel tuo ambiente di destinazione. Alcune opzioni possono rompere il codice in modi sottili. Le difese di runtime reagiscono anche all'automazione dei test e ai debugger; consulta Test e CI.

  • Escludi i percorsi frequenti dall'offuscamento VM.

    Usa vmExcludeFunctions per i cicli di animazione, il rendering in tempo reale o il codice chiamato frequentemente. Riconosce solo i nomi delle funzioni di primo livello (con Async Executor, le funzioni async più esterne); per tenere fuori dalla VM il codice annidato eseguito di frequente, usa la modalità comment e contrassegna solo le funzioni che richiedono protezione.

Avviso di sicurezza importante

Non memorizzare mai chiavi API, segreti o credenziali nel codice JavaScript frontend, nemmeno con l'offuscamento.

L'offuscamento aumenta lo sforzo necessario per comprendere e modificare il codice, ma non è una cifratura e non può garantire che il reverse engineering sia impossibile. Il runtime resta osservabile in un ambiente controllato da un attaccante, quindi un attaccante determinato può sempre estrarre dati dal codice lato client. Mantieni i segreti e le decisioni di sicurezza vincolanti sul server.

In pratica:

  • Conserva i segreti sul tuo server backend
  • Usa variabili d'ambiente lato server
  • Instrada le chiamate API attraverso il tuo backend per nascondere le chiavi
  • Usa token a breve scadenza emessi dal tuo server

Cosa dovresti proteggere?

L'offuscamento VM è ideale per:

  • Algoritmi proprietari e logica di business
  • Codice di convalida delle licenze (controlli lato client)
  • Controlli anti-manomissione e di integrità
  • Logica di gioco e meccanismi anti-cheat
  • Implementazioni di funzionalità premium
  • Logica di calcolo dei prezzi

Build e rilascio

Offusca l'output compilato e in bundle come ultima fase della build; consulta Compatibilità di esecuzione per la pipeline di build. Misura il costo del preset scelto sul tuo codice, come descritto in Scegliere i preset. Esegui i test funzionali su una build di test, poi convalida l'artefatto di rilascio separato che distribuisci effettivamente, come descritto in Test e CI.