DevToolPal
IT

Offuscatore JavaScript

Rendi il JavaScript difficile da leggere rinominando variabili, nascondendo stringhe e appiattendo la logica, mentre continua a funzionare allo stesso modo.

Eseguito in locale, mai caricato

Opzioni

Intensità

Un'intensità più alta nasconde di più ma rende il codice più grande e più lento.

Input

0 caratteri · 0 B

Output

0 caratteri · 0 B

Cosa fa

L’offuscatore JavaScript riscrive uno script in modo che funzioni esattamente come prima ma sia molto più difficile da leggere e copiare per le persone. I nomi di variabili e funzioni diventano identificatori senza senso come _0x3f2a, le stringhe letterali finiscono in una tabella di lookup codificata e, ai livelli più alti, il flusso di controllo viene rimescolato e viene inserito codice morto.

È utile per giochi nel browser, demo, widget e controlli di licenza che distribuisci come JavaScript puro e che non vuoi vedere copiati parola per parola.

Come si usa

  1. Incolla il tuo JavaScript o apri un file .js.
  2. Scegli un’Intensità:
    • Bassa rinomina i nomi locali e sposta le stringhe in un array di lookup. L’output resta veloce e abbastanza compatto.
    • Media aggiunge stringhe codificate, appiattimento del flusso di controllo e un po’ di codice morto.
    • Alta applica tutto al massimo. Il risultato può essere molte volte più grande e sensibilmente più lento.
  3. Attiva Rinomina i nomi globali solo se nulla al di fuori dello script fa riferimento alle sue funzioni o variabili di primo livello.
  4. Disattiva Output su una sola riga se vuoi il risultato distribuito su più righe.
  5. Copia o scarica il codice offuscato e provalo prima di metterlo in produzione.

Esempio

L’esempio definisce una funzione greet e un contatore di visite. Dopo l’offuscamento a intensità bassa il codice è una sola riga di nomi esadecimali, eppure eseguendolo stampa ancora Hello, Ada! You have visited 1 time(s).

Offuscamento e minificazione a confronto

La minificazione, come quella del minificatore JavaScript e CSS, rimuove gli spazi e accorcia i nomi per rendere i file più piccoli e più veloci da scaricare. L’offuscamento va nella direzione opposta sulla dimensione: aggiunge deliberatamente livelli di indirezione per rendere il codice più difficile da capire. Molti progetti minificano tutto e offuscano solo i pochi file che contengono logica da proteggere.

Limiti

L’offuscamento non può proteggere i segreti. Tutto ciò che il browser può eseguire, un utente prima o poi può ispezionarlo, quindi tieni sul server le chiavi API e le regole di business che devono restare private. Le impostazioni più pesanti rallentano anche il codice, quindi evitale nei cicli critici e nelle pagine sensibili alle prestazioni.

Domande frequenti

› L'offuscamento cambia ciò che fa il mio codice?

No. Lo script offuscato si comporta come l'originale; cambia solo la forma. Esegui sempre i test sulla build offuscata, perché il codice che ispeziona il proprio sorgente o i nomi delle funzioni può comportarsi diversamente.

› Il codice offuscato si può riportare in chiaro?

Non completamente, ma una persona determinata e con tempo a disposizione può comunque capire cosa fa. Considera l'offuscamento un dosso contro la copia occasionale, mai un posto dove nascondere segreti come le chiavi API.

› Quando dovrei attivare Rinomina i nomi globali?

Solo quando lo script è autonomo. Rinominare i globali rompe gli attributi HTML, gli altri script o i test che chiamano per nome le tue funzioni di primo livello.

› Il mio codice viene caricato?

No. L'offuscamento avviene nel tuo browser con la libreria open source javascript-obfuscator.