2012-08-09 20 views
7

L'estensione di Chrome è imballata nell'archivio zip. Dopo l'installazione è installato sulla cartella e l'utente può accedervi. Inoltre può riscrivere l'estensione e persino clonare alla nuova estensione.Come proteggere l'estensione chrome

Come posso proteggere l'estensione dalle modifiche dell'utente e dalla clonazione? Trovo la possibilità di file dll (può essere compilato) - ma non è molto bello.

risposta

5

La premessa sembra essere semplice. Di default il browser interpreta HTML/Javascript, così come le estensioni chrome che corrono insieme alla pagina.

Un modo è quello di offuscare il codice javascript, o si basano su NPAPI plugin compilato-binari, o utilizzare NaCl

+0

Quindi: strumenti offuscanti: http://www.javascriptobfuscator.com/default.aspx e http://stackoverflow.com/questions/194397/how-can-i-obfuscate-javascript – mpz

9

Nel caso in cui si disponga di un codice proprietario (ad esempio algo speciale che si desidera proteggere in modo sicuro ecc.) E si scelga come target Chrome, suggerirei di andare con Native Client. Nacl ti consente di eseguire codice C/C++ nel tuo browser. È molto potente e puoi essere sicuro che sarà molto difficile per qualcuno scegliere il tuo binario.

1

Attualmente non c'è modo è possibile nascondere il codice sorgente estensione Chrome da parte degli utenti o concorrenti.

C'è una dichiarazione in Chrome web store faq:

Posso vendere le estensioni in negozio? Non ancora, ma questa funzionalità è in arrivo.

Si può aspettare che questa funzione o provare le seguenti alternative:

  • offuscare il sorgente JavaScript: selezionare questa per maggiori dettagli How can I obfuscate (protect) JavaScript?

  • Mantenere la logica chiave su un server remoto e effettuare chiamate Ajax dallo script in background per comunicare al server

estensioni di Chrome sono esenti da 'stessa politica di origine', se il permesso di cross-origine è definito nel manifesto:

pagine web regolari possibile utilizzare l'oggetto XMLHttpRequest per inviare e ricevere dati da server remoti, ma sono limitato dalla stessa politica di origine . Le estensioni non sono così limitate. Un'estensione può parlare ai server remoti al di fuori dell'origine, purché per prima cosa richieda le autorizzazioni di origine incrociata .

Definire quanto segue nel manifesto:

{ 
    "name": "your extension", 
    ... 
    "permissions": [ 
     "http://www.yourserver.com/" 
    ], 
    ... 
}