2010-12-13 22 views
5

Ad ogni modo per crittografare un'estensione di Chrome non esponendo il codice sorgente?Encrypt Chrome-extension?

+1

Confuso per un po ', fino a quando ho visto dai tag che intendi estensione di Chrome :) - è necessario modificare la domanda. –

+0

Aggiornato grazie. – jprim

risposta

8

si può nascondere il proprio codice utilizzando obfuscator. ci sono molti disponibili sul mercato.

ci sono pochi strumenti come Google compilatore di chiusura, e un sacco di linea javascript sono disponibili nel mercato ofuscators. puoi usare qualsiasi ma non garantisce la riservatezza del codice. chiunque sia esperto di javascript può de-offuscare quel codice.

Qui ci sono due metodi: 1. rendere il vostro funzionalità disponibili tramite servizi web. il codice così importante risiede sul server e l'estensione comunicherà con il server e elaborerà l'output dal server. 2. usa NPAPI ma non è un buon metodo.

Secondo me una buona strategia è quella di cercare di dare un buon estensioni per l'utente. se c'è già qualcosa di fantastico nel mercato nessun corpo proverà a copiare il tuo addon. cerca di essere davanti ai tuoi concorrenti.

EDIT: NPAPI è deprecato.

+0

Poiché Chome ha aggiornato tutta la loro sicurezza in manifest v2, la funzione 'eval' non può più essere utilizzata. Penso che a causa del modo in cui gli obfuscator funzionano, tutti hanno bisogno di eval, quindi non puoi più proteggere il codice usando questo metodo. –

+0

@ChristianJuth Gli Obfuscator non usano sempre 'eval', e anche con v2 è possibile abilitare' unsafe-eval' se necessario. – Xan

+0

@Xan Il mio male. Ho cambiato un po 'il testo della mia risposta. Solo per curiosità puoi pubblicare un link a Obfuscator che non usa eval. Sono curioso di sapere come funzionano. –

4

come si può leggere here non si può. puoi rendere il tuo codice difficile da leggere e capire, ma questo è tutto.

(l'altra domanda riguarda il nascondere il codice javascript in una pagina html, ma questo è per lo più lo stesso (per quanto ne so, l'estensione chrome è appena scritta in js/css/html, correggimi se sbaglio))

+1

Oppure potrebbe essere scritto usando NPAPI/NaCL/PEPPER :) (C++) –

0
  1. lasciare la logica del codice importante sul vostro server (webservices aiuto)
  2. iniettare HTML sensibile e js in iframe (la creazione di questo html può essere fatto in modo dinamico)

Ma credo che tutto si riduce giù all'architettura del tuo codice

-1

Con manifest offuscamenti v2 sono più difficili da utilizzare perché eval sono considerati motivi di sicurezza non sicuri.

Forse uno dei più grandi cambiamenti nel nuovo schema v2 manifesta è che le estensioni non possono più utilizzare dinamiche tecniche di valutazione script come eval() o new Function(), o passare stringhe di codice JS per le funzioni che causeranno un eval() da utilizzare, come setTimeout(). Inoltre, alcune librerie JavaScript comunemente usate, come Google Maps e alcune librerie di modelli, sono conosciute per utilizzare alcune di queste tecniche.

Fonte https://developer.chrome.com/extensions/tut_migration_to_manifest_v2#using

mi raccomando solo minifying il codice. Il modo in cui i minificatori funzionano (dato che non funzionano tutti nello stesso modo) rimuove ogni spazio modificando i nomi delle variabili in lettere singole per ridurre i caratteri. Ciò rimuove molto il significato dal tuo codice e rende molto difficile da leggere. Non è a prova piena, ma aggiungerà un ulteriore molto fastidioso passo per leggere il tuo codice. Inoltre, i minificatori erano progettati per la compressione e per far funzionare il codice più velocemente. Il mio minifier preferito è UglifyJS.

Problemi correlati