Best practice
Come applicare l'offuscamento in modo efficace: che cosa proteggere, che cosa lasciare invariato e che cosa l'offuscamento non può fare.
Raccomandazioni
Offuscare soltanto il proprio codice.
Non applicare l'offuscamento VM a script di terze parti, librerie o polyfill: sono già minimizzati e l'offuscamento si limiterebbe a rallentarli.
Utilizzare la modalità comment per una protezione mirata.
Contrassegnare con
/* javascript-obfuscator:vm */soltanto le funzioni sensibili, anziché proteggere l'intero codice.Eseguire test approfonditi dopo l'offuscamento.
Il codice offuscato va sempre testato nell'ambiente di destinazione. Alcune opzioni possono comprometterne il funzionamento in modi non immediatamente evidenti.
Escludere i percorsi critici dall'offuscamento VM.
Utilizzare
vmExcludeFunctionsper i cicli di animazione, il rendering in tempo reale o il codice richiamato di frequente.
Avviso di sicurezza importante
L'offuscamento rende il reverse engineering più difficile, ma non è crittografia. Un attaccante determinato è sempre in grado di estrarre dati dal codice lato client.
È invece opportuno:
- Conservare i segreti sul proprio server backend
- Utilizzare variabili d'ambiente lato server
- Instradare le chiamate API attraverso il proprio backend per nascondere le chiavi
- Utilizzare token di breve durata emessi dal proprio server
Che cosa conviene proteggere?
L'offuscamento VM è particolarmente indicato per:
- Algoritmi proprietari e logiche di business
- Codice di convalida delle licenze (controlli lato client)
- Controlli anti-manomissione e di integrità
- Logiche di gioco e meccanismi anti-cheat
- Implementazioni delle funzionalità premium
- Logiche di calcolo dei prezzi
