2009-04-09 15 views
8

Capisco che il codice lato client deve essere leggibile dal browser, ma mi chiedo (dato che ci sono troppe cose che ignoro) se ci sono modi per offuscare il codice all'utente finale e, se non è la migliore prassi per "impacchetta" il codice javascript.È possibile nascondere o scramble/offuscare il codice javascript di una pagina Web?

+0

Dup: http://stackoverflow.com/questions/599911/what-do-you-use-to-minimize-and-compress-javascript-libraries –

+0

Dup: http://stackoverflow.com/ questions/702907/what-are-some-good-css-and-js-minimizers-for-production-code –

+0

http://stackoverflow.com/a/17468822/2450730 – cocco

risposta

4

Controllare this out.

Altro che min, non penso che tu possa davvero nascondere js. Tutto va al browser dell'utente e ci sono molti modi di vederlo una volta lì.

+0

Vero, non puoi * nasconderlo * , ma offuscarlo e/o minificarlo lo rende molto più difficile da leggere per gli umani. –

+0

Perché vuoi nascondere javascript dall'utente? Se hai qualche tipo di logica di business, hai problemi molto più grandi. –

+0

http://malzilla.sf.net/ È banale utilizzare un browser non standard che sputa il codice JS offuscato in una forma non offuscata. Semplicemente non è possibile nascondere tutto ciò che si invia al client. – ephemient

2

Vedi here di Javascript Obfuscator libero.

Dato che è effettivamente possibile, se la ragione per cui si intende offuscare è proteggere la proprietà intellettuale, si sta probabilmente cercando di ricavare valore dal proprio lavoro nel modo sbagliato. È abbastanza facile invertire l'offuscamento e probabilmente perdere tempo a mantenere il codice.

concentrarsi maggiormente su quali servizi si intende offrire a coloro che visitano il sito come un mezzo per differenziare il tuo sito da parte dei concorrenti

+0

Non lo userei, alcune app di sicurezza potrebbero considerare javascript come un potenziale tentativo di hacking e bloccarlo –

+0

Non l'ho mai usato io :) E non vorrei mai offuscare il mio javascript – Mystic

0

Ci sono tools che potrebbe essere utilizzato per comprimere codice javascript e rendere difficile per la fine utente da capire.

0

Non mettere tutte le informazioni sensibili o personali in javascript.

Passa il tuo tempo a proteggere i tuoi dati sul server.

0

Passaggio 1: no.

Si dovrebbe fare molto per raggiungere qualsiasi livello significativo di offuscamento. Nascondere i nomi da solo non è sufficiente, poiché tutte le funzioni standard saranno ancora lì (sebbene possano essere sepolte in uno strato di alias più brevi/offuscati) e ricavare lo scopo di una particolare funzione è facile una volta che il codice è stato formattato correttamente ancora. Chiunque voglia davvero sapere che cosa fa il tuo codice JS può, e lo farà, indipendentemente da ciò che fai prima che il browser ne ottenga una copia.

Se il tuo è veramente hai preziosi processi di business nel tuo JavaScript, quindi stai sbagliando (tm).

0

Nessuna offuscazione protegge il tuo codice in modo veramente sicuro e potrebbe darti solo la falsa illusione della sicurezza (vedi security by obscurity).

Se è necessario mantenere una parte del codice segreto, prendere in considerazione la possibilità di inserire le parti sensibili in uno script lato server e di effettuare (ad esempio) chiamate AJAX allo script. Soprattutto con l'avvento di JSON, comunicare con gli script sul lato server non è mai stato così facile.

0

E 'possibile utilizzare i seguenti strumenti:

  • YUI Compressor - richiede Java - molto buon compressore

  • Packer - crea il codice più confuso, e la più piccola, ma gli script non correre veloce come YUI - questo può essere usato online però. Seleziona 'Base62 encode' per ottenere il massimo effetto.

  • Il compressore Dojo Non l'ho mai usato, ma è in cima alla lista. Richiede anche Java.

  • JSMIN Di Douglas Crockford, questo ha un algoritmo molto semplice, ma è comunque buono. Indicato per essere utilizzato in combinazione con JSLint.

Problemi correlati