2014-12-07 28 views
27

Sto usando UglifyJS per minificare e rendere più agevoli le mie fonti.file di mappe di origine in produzione: è sicuro?

Sto usando getsentry per segnalare errori dal mio ambiente di produzione.

Al fine di ottenere gli errori da getsentry, in modo leggibile, ho bisogno di aggiungere fonte-map

E 'sicuro di farlo in server di produzione, oppure i file di origine-maps dovrebbe esistere solo sulla messa in scena ambiente ?

C'è un modo per proteggerli nell'ambiente di produzione?

Thankes

+2

Non sono sicuro di cosa intendi per "sicuro". Ci sono dettagli sensibili che potrebbero essere codificati nelle mappe sorgente? Il codice ha la stessa sicurezza sia che sia brutto o meno. –

+0

È vero, ma preferisco che la fonte non sia facilmente visibile, anzi preferirei che solo getsentry, sia in grado di usare le mappe di origine, so che non aggiunge alcuna sicurezza reale, ma io comunque vorrebbe che le mie fonti, le tue apis e la logica interna fossero nascoste al normale utente ... –

+3

L'utente normale in genere non scava attraverso il codice sorgente e le persone che potrebbero pensare di scavare attraverso il codice sorgente per sfruttarla in qualche modo non saranno particolarmente scoraggiate dall'offuscamento. –

risposta

8

I suoi obiettivi primari saranno "E 'ok se l'utente ha il mio codice sorgente?" Di solito va bene, in quanto gli utenti possono deobfuscare comunque le cose.

Detto questo, se si utilizza Sentry, è possibile utilizzare lo releases API per evitare questo problema. Dovrai comunque generare gli artefatti e impostare gli URL (o qualcosa che l'API può gestire), ma non devi esporli a Internet.

27

ricerca di una possibile soluzione a questo, e se qualcuno non è specificamente utilizzando Sentry, ho avuto modo di questo post del blog (ironia della sorte un post sul blog Sentry):

https://blog.sentry.io/2015/10/29/debuggable-javascript-with-source-maps.html

Dove c'è un idea interessante : "mappe di sorgenti private". Implica la generazione di sorgenti temporanee in un luogo che non è accessibile da Internet (come la VPN aziendale), quindi solo tu o il tuo team potete accedere ai file sourcemaps.

Citando la sezione "Mappe private Centro" del post:

[...] tutti i nostri esempi per scontato che le mappe di origine sono disponibili al pubblico, e serviti dallo stesso server come l'esecuzione di JavaScript codice. In tal caso, qualsiasi sviluppatore può utilizzarli per ottenere il codice sorgente originale.

Per evitare ciò, invece di fornire un sourceMappingURL accessibile pubblicamente, è possibile servire le mappe di origine da un server accessibile solo al proprio team di sviluppo. Ad esempio, un server raggiungibile solo dalla VPN della tua azienda.

// # sourceMappingURL: http://company.intranet/app/static/app.min.js.map

Quando una non-squadra visite membri l'applicazione con strumenti di sviluppo aperti, tenteranno di scaricare questa mappa fonte, ma ottenere un errore 404 (o 403) HTTP, e la sorgente la mappa non verrà applicata.

Sembra una buona idea per me!