Documentazione
/

Compatibilità di esecuzione

Compatibilità di esecuzione

Scegli target per il runtime effettivo. I build Browser e Node possono contenere difese differenti; un target Browser non sostituisce Node. Anche dichiarazioni dell’ambiente, restrizioni di dominio e strumenti devono corrispondere alla configurazione.

target

  • browser - Chrome, Firefox, Safari, Edge.
  • browser-no-eval - identico a browser, ma l'output non utilizza eval(). Da impiegare quando la pagina di destinazione applica una Content Security Policy che vieta eval/unsafe-eval.
  • node - ambiente Node.js. Le opzioni specifiche del browser sono disattivate (richiedono window/document e in Node non avrebbero effetto o genererebbero un errore). Alcune difese di vmSelfDefending che si basano su API disponibili solo nel browser - rilevamento dei browser headless, ripristino di un realm pulito tramite iframe, controlli anti-inspector e sul DOM - non vengono generate per questo target.
  • service-worker - contesto Service Worker. Nessun window, nessun document e un oggetto globale self differente.
  • userscript - sandbox di un gestore di userscript (ad esempio Tampermonkey). Le difese di vmSelfDefending vengono adattate di conseguenza. Richiede l'offuscatore v6.9.0+.
  • bytenode - per codice destinato a essere compilato in .jsc con bytenode. Richiede l'offuscatore v6.13.0+.

JavaScript

Nomi e testo sorgente delle funzioni possono cambiare con l’offuscamento. Non usare .name o .toString() come dati stabili; usa identificatori espliciti. I globali pubblici possono restare visibili in base alle impostazioni.

strictMode

strictMode: null e strictMode: false riconoscono comunque direttive esplicite, moduli ES e metodi di classe come strict. strictMode: true tratta tutto l’input come strict. Rispetta il contesto finale: un bundler che aggiunge strict mode dopo l’offuscamento può cambiare il comportamento.

CLI / API

Compila TypeScript o JSX e crea il bundle prima dell’offuscamento finale. Conserva i commenti di selezione VM fino a quel momento. Non minificare, formattare o modificare successivamente l’output con Self Defending. Le source map non sono disponibili con offuscamento VM e HTML. Per i test funzionali con agenti, automazione o debugger, consulta Test e CI.