Ricette

Guide end-to-end e ragionate per i problemi di integrazione più comuni di javascript-obfuscator. Ogni ricetta si concentra su come combinare le opzioni per ottenere un risultato specifico, anziché documentare i singoli flag.

Selezionare la ricetta corrispondente al problema da risolvere. Nel tempo ne verranno aggiunte altre: se si incontra uno scenario di integrazione non ancora trattato, è possibile segnalarlo e verrà documentato.

In questa sezione

Best practice

Che cosa proteggere, che cosa lasciare invariato e che cosa l'offuscamento non può fare.

Recuperare la chiave del bytecode array dal backend

Mantenere la chiave di decrittazione del bytecode VM fuori dal client con un key getter asincrono che la recupera dal backend al momento del caricamento.

Sostituzione di template lato host

Inserire valori generati dal server nel JavaScript offuscato con VM utilizzando reservedNames e reservedStrings.

Nascondere i nomi delle funzioni all'analisi degli LLM

Perché il codice offuscato con VM può esporre a un LLM nomi di funzioni significativi e come un wrapper IIFE elimina il problema.

Diagnosticare gli errori di runtime della VM

Checklist passo per passo per gli errori di runtime della VM come "Invalid array length", per distinguere una configurazione errata di target o self-defending dai bug reali.

Evitare le collisioni di identificatori

Perché il bundling di più file offuscati con VM può generare "Identifier already declared" in fase di parsing e come risolvere il problema con identificatori casuali o esadecimali.

Offuscamento VM con eval e new Function

Come l'offuscamento VM gestisce eval diretto e le chiamate al costruttore Function, che cosa viene convertito in bytecode e che cosa viene ignorato, quali avvisi emette l'offuscatore e come diagnosticare i ReferenceError a runtime.

Telemetria e reazioni delle difese VM

Segnalare al proprio backend i rilevamenti delle difese VM con vmDefenseHook e regolare la reazione di ogni categoria di rilevamento con vmDefenseReaction.