Proteggi il codice del server Node.js

0

Situazione / enviorment:

Ho scritto un progetto il cui nucleo è un server Web e API NodeJs. Mi piacerebbe venderlo a più client, ospiteranno il server sul loro sistema.

Problema:

Il server NodeJs funziona con codice sorgente ed è quindi molto vulnerabile a essere condiviso, manipolato o copiato.

Obiettivo:

Proteggi il codice sorgente da qualsiasi influenza esterna, in un modo di compilare, racchiudere o codificare in modo sicuro il codice sorgente per consentirne la condivisione a più client senza il rischio che vengano manipolati o copiati.

Ho saputo di un approccio a questo problema, il molto promettente enclose.js , ma mi piacerebbe valutare diversi metodi per proteggere il codice sorgente NodeJS, suggerito dagli esperti di sicurezza, e alla fine trovare una buona / migliore pratica per affrontare questo problema.

    
posta Clemens Himmer 11.08.2016 - 19:55
fonte

2 risposte

1

Da un punto di vista aziendale, penso che se potessi impacchettarlo come servizio in hosting, sarebbe un buon modo per evitare che il codice venga utilizzato da persone non autorizzate.

Non c'è modo di garantire che la tua applicazione non sia distribuita anche se la offuschi molto pesantemente per proteggere il tuo I.P.

Consiglio vivamente di vendere il prodotto con il modello SaaS o PaaS in cui i tuoi clienti utilizzano il tuo sito web (un frontend) per interagire con il servizio / prodotto.

    
risposta data 11.08.2016 - 20:19
fonte
0

Sono d'accordo con la risposta di @ 0x23212f . L'offuscamento o la precompilazione di JavaScript ha un potenziale limitato. Se fosse C, potresti avere un successo migliore, ma i linguaggi di alto livello, incluso Java, possono essere facilmente deselezionati o de-offuscati.

Tenendo presente questo, dovrai controllare lo spazio del server in cui è memorizzato. Un buon vantaggio per farlo in questo modo è che le tracce dello stack saranno intatte.

Presumo dal momento che non hai ancora risolto questo problema, che deve essere un nuovo prodotto. I nuovi prodotti tendono ad avere errori anche nella produzione, quindi saranno utili tracce di stack complete.

Se devi precompilare, fai qualche passo come

  • Uso di Google Closure Compiler (che probabilmente ti assegnerà una mappatura all'originale per scopi di traccia dello stack) Questo è un modo affidabile per offuscare i nomi delle variabili, ma la struttura del programma rimane intatta.
  • Distribuire il file come una stringa Base64 crittografata con un metodo di decrittografia. (Facilmente aggirato)
  • Alcuni tipi di autoispezione per avvisarti se i file sono stati modificati (richiede l'accesso a Internet)
risposta data 11.08.2016 - 21:58
fonte