Tutto ciò che gira nel browser è, in qualche misura, visibile. Ma c'è una differenza enorme tra esporre il bundle finale — compatto e offuscato — ed esporre i sorgenti originali, ordinati e leggibili. Un buon progetto serve solo il primo e blocca i secondi. Ecco come.
Sorgenti vs bundle
I sorgenti sono il codice come lo scrive lo sviluppatore: chiaro, commentato, organizzato. Il bundle è la versione pronta per la produzione, unita in un file, minificato e offuscato. Entrambi "funzionano", ma solo i sorgenti rivelano la logica.
Il rischio: lasciare i sorgenti accessibili
Se la cartella dei sorgenti resta raggiungibile pubblicamente, chiunque può scaricarne la versione leggibile, studiarla e copiarla. Un errore di configurazione silenzioso ma costoso.
La difesa: servire solo il build, bloccare i sorgenti
Si pubblica solo la cartella del bundle e si blocca con un middleware ogni richiesta alla cartella dei sorgenti:
app.use('/js', (req, res) => res.status(404).end());
// pubblico solo /js-build (il bundle offuscato)
Difesa in profondità
Nessuna singola misura è perfetta: l'offuscamento scoraggia, il blocco dei sorgenti chiude la porta più ovvia. Insieme alzano molto l'asticella per chi vuole copiare il lavoro.
Cosa significa per il tuo progetto
Significa che la proprietà intellettuale del tuo software è tutelata e non resta esposta per distrazione. È una scelta predefinita nei miei progetti. Parliamone.
Collegato: path containment e minificazione e offuscamento.